1. 程式人生 > >linux編譯C++ 報錯stray '\357' in program

linux編譯C++ 報錯stray '\357' in program

在linux端編譯so時,報了一個stray '\357' in program的錯誤。

大概是兩種可能:

1.原始檔中含有中文字元(註釋不算)。

2.原始檔編碼格式採用了UTF-8帶BOM的格式。

後來看了下的確是編碼格式的問題,只要另存為其他編碼格式重新編譯即可。

另外在windows端編譯時並沒有報錯,可以編譯通過。

應該純粹只是linux不接受UTF-8帶BOM格式的編碼。

另外在windows環境下編譯工程時出現過error LNK2005: __cinit already defined in Libcmt.lib(crt0dat.obj)型別的報錯。

一般是因為兩個預設庫相互衝突了,此類問題可以在工程(或者專案)->屬性->連結器->忽略指定庫來遮蔽掉其中的一個或多個庫。

如果遮蔽了一個後仍有編譯錯誤,說明可能遮蔽錯物件了,可以嘗試遮蔽另外一個庫。