gcc:CLOCK_REALTIME 未声明
我试图运行我发现的 C 代码 在这个网站上
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#define n 2048
double A[n][n];
double B[n][n];
double C[n][n];
int main() {
//populate the matrices with random values between 0.0 and 1.0
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
A[i][j] = (double) rand() / (double) RAND_MAX;
B[i][j] = (double) rand() / (double) RAND_MAX;
C[i][j] = 0;
}
}
struct timespec start, end;
double time_spent;
//matrix multiplication
clock_gettime(CLOCK_REALTIME, &start);
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
for (int k = 0; k < n; k++) {
C[i][j] += A[i][k] * B[k][j];
}
}
}
clock_gettime(CLOCK_REALTIME, &end);
time_spent = (end.tv_sec - start.tv_sec) + (end.tv_nsec - start.tv_nsec) / 1000000000.0;
printf("Elapsed time in seconds: %f \n", time_spent);
return 0;
}
但是当我编译它时,gcc说:
main.c:27:19: error: 'CLOCK_REALTIME' undeclared (first use in this function)
clock_gettime(CLOCK_REALTIME, &start);
^~~~~~~~~~~~~~
我使用了来自gcc-g++ rel="nofollow noreferrer">MinGW 如 本教程。
我刚刚从教程页面复制了 C 代码并使用它进行编译
gcc -O3 main.c -o matrix
(我的源文件名为 main.c
)。
可能的重要信息:我使用的是 Windows 10。
编辑:编译在 Ubuntu 20.04 上运行得很好(如文章中所述)。不过,你能帮我让它在 Windows 上编译吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是我正在开发的基准程序的内容:
然后在我需要计时的前后使用
get_ticks()
,计算差异,并使用根据需要进行缩放ticks_per_second,例如
Here's what I've got for a benchmark program I'm working on:
Then use
get_ticks()
just before and after what I need to time, take the difference, and scale as needed usingticks_per_second
, e.g.