warning:conflicting types for built-in function'puts'解決方法
• linux教程• 發佈:2018-10-02
warning:conflicting types for built-in function'puts'解決方法
【編譯器版本】
arm-linux-gcc 3.4.1
【問題描述】
在做嵌入式底層開發時,自己寫了一個puts函式,也就是通過串列埠傳送字串到超級終端。但在編譯程式的時候出現瞭如下問題:
warning: conflicting types for built-in function 'puts'
【問題分析】
在C語言標準中,有些通用函式被定義為built-in function(內建函式),像printf,puts,strchr,memset等等,這些函式不需要包含標頭檔案中的宣告,就可以編譯連線該函式的。但有時候你想自己實現,就會出現上面所示的衝突提示。
有的時候你不用包含一些標頭檔案,也能使用那個裡面包含的函式,可能是編譯器包含了一些常用的簡單的函式的處理,即便是你不包含標頭檔案,編譯器也知道到哪裡找,但是如果是一些複雜的函式,或者是你自己寫的靜態庫,你想使用時必須要包含;僅僅只是一些簡單的函式你不用包含標頭檔案而已。
【解決辦法】
1.在編譯是加上-fno-builtin或者-fno-builtin-FUNCTION 選項,你就可以自己實現這些函式而不衝突了。例如在上面的提示中,你編譯時加上-fno-builtin-puts ,就可以正常編譯了。
2.把這些函式改個名稱,以便不衝突。
