?? linux下c語言編程常見問題.txt
字號(hào):
Linux下C語言開發(fā)經(jīng)常遇到的問題(隨時(shí)遇到隨時(shí)補(bǔ)充)
1. GCC編譯出現(xiàn)Assembler錯(cuò)誤。
問題描述:
gcc編譯程序,出現(xiàn)下面的提示:
/tmp/cciL1MpP.s: Assembler messages:
/tmp/cciL1MpP.s:17: Error: suffix or operands invalid for `push'
/tmp/cciL1MpP.s:21: Error: suffix or operands invalid for `pop'
故障原因:
這是因?yàn)椴僮飨到y(tǒng)的版本問題造成的,問題出現(xiàn)在64為的Linux系統(tǒng)下,如果C語言源代碼使用的是32為操作系統(tǒng)編碼規(guī)范或連接了32位的函數(shù)庫或目標(biāo)代碼,就會(huì)出現(xiàn)上面的錯(cuò)誤。
解決方法:
在編譯時(shí)gcc增加-m32選項(xiàng),將目標(biāo)代碼編譯成32位的即可,這樣編譯出來的代碼仍然可以在64位的操作系統(tǒng)下運(yùn)行。
2. GCC編譯器關(guān)于處理difftime()函數(shù)的一個(gè)BUG。
問題描述:
使用了函數(shù)difftime()進(jìn)行時(shí)間比較的程序經(jīng)常出現(xiàn)core dump或收到中斷信號(hào)退出
故障原因:
這是因?yàn)閐ifftime()的返回值是一個(gè)double型的值,如果它與一個(gè)整型值變量進(jìn)行比較,gcc編譯器生成的代碼存在溢出的問題,就把后面的變量給沖掉了。
解決方法:
避免使用difftime進(jìn)行時(shí)間比較,直接將兩個(gè)時(shí)間相減即可。
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -