2016-02-05 52 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文件的工作,因爲我使用strftimetime_t,並且'struct tmtime.h沒有問題。我知道它是strptime,因爲當我評論這行代碼時,它編譯時沒有任何問題。

+0

聲明:'#include '需要前面加上'#define _XOPEN_SOURCE',以便函數原型可見。或者對於gcc,使用參數'-std = gnu99'或'-std = gnu11' – user3629249

回答

0

你缺少告訴我們你是什麼平臺,你的編譯器版本,參數......

在任何情況下,strptime是不是在標準C,但帶有POSIX。例如,你的編譯器選項可能錯了,它不會爲你提供C的POSIX擴展名。例如,使用gcc,這將使用-std=gnu11而不是-std=c11