cygwin可以使用gettimeofday()吗?我收到了错误:
lab8.cpp: In function ‘int main()’:
lab8.cpp:62:30: error: ‘gettimeofday’ was not declared in this scope
gettimeofday(&start, NULL);
^
makefile:14: recipe for target 'lab8.o' failed
make: *** [lab8.o] Error 1
我绝对包括<sys/time.h>
。是否有我必须安装的软件包,或者它是否在Windows上无法运行?
编辑:这是一个产生相同错误的简单测试:
#include <sys/time.h>
int main() {
struct timeval start;
gettimeofday(&start, NULL);
}
错误:
$ g++ -c -Wall -g -std=c++11 test.cpp -o test.o
test.cpp: In function ‘int main()’:
test.cpp:6:30: error: ‘gettimeofday’ was not declared in this scope
gettimeofday(&start, NULL);
答案 0 :(得分:7)
您需要定义_BSD_SOURCE以包含声明gettimeofday(因为glibc2.2.2根据下面的链接)
#define _BSD_SOURCE
#include <sys/time.h>
int main() {
struct timeval start;
gettimeofday(&start, NULL);
}
答案 1 :(得分:0)
谢谢约翰 - 你的问题解答我的答案!
如果它可以帮助其他人搜索此错误... 我得到了同样的错误:
error: ‘gettimeofday’ was not declared in this scope
gettimeofday(&lastBigTick, NULL);
当我从Debian 8(jessie)迁移到Debian 9(延伸)在树莓派上时,这个错误开始发生
对我来说,我没有#included&#34; sys / time.h&#34;我只有#included&#34; time.h&#34; 不确定它之前是如何编译的,但确实如此,所以添加
#include "sys/time.h"
为我做了这份工作。
注意:&#34; time.h&#34;是不同的,其他时间功能仍然需要,所以我最终需要两个:
#include "time.h"
#include "sys/time.h"
我的情况可能有所不同,如添加
#define _BSD_SOURCE
对我的情况没有任何影响 - 这对我来说不是问题。