2016-02-05 9 views
1

Так что, когда я использую функцию strptime я получаю как предупреждение:strptime давая «неявное объявление» и «неопределенная ссылка»

warning: implicit declaration of function 'strptime' 

и ошибка после того, что:

undefined reference to 'strptime' 

Да, Я включил time.h. Вот небольшой пример кода, который я использую.

#include <time.h> 

void my_function() 
{ 
    char buf* = "2016-02-05 12:45:10"; 
    struct tm time*; 
    ... 
    strptime(buf, "%F %T", &time); 
    ... 
} 

Я знаю time.h происходит потому, что работает в том же .c файле, я использую strftime, time_t и 'struct tm от time.h без проблем. Я знаю, что это strptime, потому что когда я прокомментирую эту строку кода, она компилируется без каких-либо проблем.

+0

утверждение: '#include ' должно предшествовать: '#define _XOPEN_SOURCE', поэтому прототип функции виден. или, для gcc, используйте параметр '-std = gnu99' или' -std = gnu11' – user3629249

ответ

0

Вы не хватает, чтобы сказать нам о том, что платформа вы, ваша версия компилятора, аргументы ...

В любом случае, strptime не в стандартной C, но поставляется с POSIX. Вероятно, вы неправильно указали свои параметры компилятора, чтобы он не предоставлял вам расширения POSIX для C. В gcc это, например, было бы использовать -std=gnu11 вместо -std=c11.