1. gcc編譯時用的庫文件arm-linux-gcc編譯時提示不兼容怎麼辦
確定使用的編譯器,與目標的linux版本一致性。
如:2.6.13的核==》3.2.1的編譯器
2.6.29==》4.3.2的編譯器
2. 不同的c語言編譯系統差別在哪裡代碼是否 存在兼容性的問題
ANSI
C
一般都可以支持,但也涉及到不同版本的C標準的兼容性問題,比如VC6不支持C99,VS2003,2005,2008,20120等就可以部分支持C99標准;而且很多標准並沒有規定實現,不同的編譯器實現可能不同,比如C標准只規定了short<=int<=long,但並沒有規定位元組數,導致不同的編譯器數據類型的大小各不相同。
非
ANSI
C標準的話,不同的編譯器一般都有不同的實現,需要分別實現。
在移植到不同編譯器的時候這些都要注意處理,比較常規的做法是數據類型和函數等自己根據不同編譯器封裝成一個統一的格式,在程序中使用封裝後的數據類型或函數,而不要使用原生類型,這樣在移植時只需要在封裝的地方根據編譯器的不同進行修改就可以了,不需要再修改源代碼。
3. vs2015編譯exe時如何做到向下兼容 我在win10上使用vs2015編譯的exe無法在win7
我的編譯器是vs2013的,這個應該適合2015。
項目,屬性,鏈接器,系統,所需的最低版本,該為5.01。
還是屬性頁,配置屬性,常規,平台工具集,改為含有windows xp的那項。
還是配置屬性,C/C++,代碼生成,運行庫,改為多線程。