我使用下面列出的结构和方法,包括sys / time.h或time.h,不要改变任何东西。可能是什么问题?
struct tm theTime;
strptime((char *)nodeValue, "%a %b %d %H:%M:%S +0000 %Y", &theTime);
time_t epochTime = timegm(&theTime);
我正在使用XCode并为armv7编译。 (之前,这是完美的。我不知道以前发生了什么变化..)
我收到以下错误:
Variable has incomplete type 'struct tm'
Implicit declaration of function 'strptime' is invalid in C99
Implicit declaration of function 'timegm' is invalid in C99
答案 0 :(得分:1)
通过在编译时或包含标题之前定义特征测试宏-D_POSIX_C_SOURCE=200809L
来启用声明:
#define _POSIX_C_SOURCE 200809L
#include <time.h>
有关功能测试宏_POSIX_C_SOURCE
的详细信息,请参阅here。
答案 1 :(得分:1)
我已经包含了另一个标题路径,其中还包含time.h,其内容无关紧要。我修好了,一切都恢复了。
因此,在这种情况下,最好检查标题路径以查看是否有任何其他文件具有相同的名称,但在另一个目录中。
@ ouah的答案很棒,这是一个很好的提示,但它不是我问题的直接解决方案。