A. 代碼中有中文注釋而編譯不過的情況,大家有沒有遇到過。linux下,gcc
可能是由於字元集的問題,造成了有亂碼.不能正常編譯...將系統的字元集設置成和代碼文件的字元集一致應該就可以了.
B. 請教關於gcc編譯文件時遇到C11支持的問題
由於系統比較復雜,首先用VC++.NET 2005 開發,在PC測試全部通過後,使用GCC編譯時出現了兩個警告,調試時出現一個錯誤.請高手指教:
1.編譯器警告
Queue.h:20: warning: ignoring packed attribute on unpacked non-POD field `CommandPackage Queue::cmd[1]
請教原因
2.編譯器警告
buffer.h:12: warning: alignment of 'Buffer::_ZTV6Buffer' is greater than maximum object file alignment. Using 1
3.調試器報錯
AVR Simulator: Excessive stack overflow, stop sim
簡單說明下程序的情況:
程序用了面向對象的設計,總共涉及了大約10+個類.其中報錯了的是指令緩沖相關類.
Buffer繼承出了E2PBuffer和CommBuffer,在類內部使用了一個CommandPackage(non-POD)類型組成的Queue類.其中Buffer及其兩個子類還有Queue均報了以上兩個警告.
我CommandPackage的大小是 10 Byte,緩沖隊列最大數量是5,緩沖隊列一共產生了6個實例.
由於編譯器不支持new和delete,所有對象在全局實例化.並通過函數初始化函數將引用傳進類
C. gcc編譯錯誤 一個關於函數指針的(C語言)
如果你用GCC編譯,首先用//注釋就是錯誤的,肯定報錯,另外,如果你在非win環境下是不能包含window.h頭文件的