最近在看linux內核剖析,想在windows下用mingw進行編譯,可今天在編譯string.c時出現一下提示
warning: conflicting types for built-in function 'strchr'
後來查了資料也弄明白,在C語言標準中,有些通用函數被定義爲built-in function(內建函數),像printf,strchr,memset等等,這些函數不需要包含頭文件中的聲明,就可以編譯連接該函數的。但有時候你想自己實現,就會出現衝突的提示。
解決辦法:在編譯是加上-fno-builtin或者-fno-builtin-FUNCTION 選項,你就可以自己實現這些函數而不衝突了。
例如在上面的提示中,你編譯時加上-fno-builtin-strchr ,就可以正常編譯了。