has incomplete type問題及解決
在編譯Linux C應(yīng)用程序時(shí),gcc如果報(bào)這種錯(cuò)誤:has incomplete type(不完全的類型),往往是由于出現(xiàn)與系統(tǒng)重復(fù)的頭文件導(dǎo)致
示例:
報(bào)錯(cuò)如下:
/usr/include/x86_64-linux-gnu/bits/stat.h:91:21: error: field ‘st_atim’ has incomplete type
struct timespec st_atim; /* Time of last access. */
原因:
出現(xiàn)這種情況,往往是由于你的工程中,include的頭文件里有一個(gè)與系統(tǒng)中的頭文件重名了,因此編譯器查找頭文件時(shí),是查找的你工程中或者其他非系統(tǒng)路徑下的頭文件,導(dǎo)致系統(tǒng)中的頭文件不再被包含了,因此找不到變量或結(jié)構(gòu)體的聲明。文章來源:http://www.zghlxwxcb.cn/news/detail-527388.html
在如上示例中,是由于我的代碼里,自己寫了一個(gè)time.h的頭文件,而系統(tǒng)中已經(jīng)有了一個(gè)time.h,并且其中定義了struct timespec,因此編譯器提示:has incomplete type,不完全的實(shí)現(xiàn)?。。?br> 也就是你的頭文件替代了系統(tǒng)頭文件且沒有相關(guān)變量或結(jié)構(gòu)體的聲明?。。?span toymoban-style="hidden">文章來源地址http://www.zghlxwxcb.cn/news/detail-527388.html
到了這里,關(guān)于編譯報(bào)錯(cuò):has incomplete type 不完全的類型的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!