gcc編譯調試實驗心得
⑴ 將VC程序移植到linux系統的幾點經驗心得
經驗心得:
有時我需要製作LINUX與WINDOWS下都可以運行的程序。在一般情況下,我會選擇在WINDOWS平台下完成初始的開發。因為VC提供的圖形化的編輯與調試界面的確較GCC要高產得多。在完成了測試之後,就開始把它向LINUX移植,移植的過程會有一些需要注意的地方。下面就是我的一些心得。
1.文件名
由於ext2文件系統對文件名是大小寫敏感的,當你在這種文件系統上進行編譯的時候,源文件中出現的#include 語句必須小心了。因為在VC環境下,由IDE自動生成的#include 語句,其中的文件名全部是小寫的。所以,你需要在一開始就注意這個問題,嚴格的使用大小寫敏感的文件名格式,避免在LINUX下編譯時出現找不到頭文件的錯誤。
2.數據類型
千萬不要使用VC獨有的數據類型,象__int16, __int32 和__int64 等等,你無法保證其它的編譯器能否支持它們。特別是__int64,它確實簡化了編程工作,但是當你的邏輯里充滿了這樣的數據類型的時候,改動就變得無比困難了。還有一個問題就是,我們經常在VC中使用WORD,DWORD,INT,UINT這樣的擴展數據類型,不直接使用編譯器的數據類型有助於提高在不同平台之間的可移植性。但是LINUX下沒有定義這樣的類型啊?其實只需要將windows.h和basetypes.h中對這些數據進行定義的語句復制到一個頭文件中,再在linux下包括進來就行了。
3.關鍵字
關鍵字是比較好處理的東西,凡是VC中帶兩個下劃線的關鍵字,比方__asm都是VC獨有的。盡量不使用它們,如果實在無法避免,就用#ifdef 和#endif為LINUX和WINDOWS編寫兩個版本。
4.MAKEFILE的編寫
你可以先用VC導出一個makefile,然後對其進行修改,但我傾向於從中拷貝出一段來生成GCC的makefile,比起手工編寫要快許多。
5.程序設計結構
這絕對是移植過程中問題最大的一個部分。應用程序難免要用到操作系統的服務,如果完全使用標準的C/C++編寫,這將不是一個問題,但是當我們使用到多進/線程,管道,或者對WINDOWS圖形界面的程序進行移植的時候,這個問題就變得突出了。我們應當從設計上就為程序的移植打好基礎。
解決這個問題首先必須搞清楚應用程序的邏輯模塊。對於這個模塊必須使用標準的C/C++進行編寫。同時將應用程序使用的線程數最小化,線程越多越難移植。將輸入輸出模塊獨立出來。最後劃分出控制模塊,這個模塊與用戶進行交互。
最後,我建議你網路一下《Linux就該這么學》來進一步了解更多相關知識~
⑵ GCC能否運行於ARM-Linux環境下即GCC能否在ARM平台上運行
簡答:
gcc可以運行在arm-linux下。
gcc,可以在arm平台上運行。
詳解:
gcc,一般指的是,pc版,x86的平台,
用於嵌入式系統,比如arm的cpu,linux的系統下,是:
本來,一直就可以的,
而且有專門的屬於:
交叉編譯
簡答說就是:
在你的pc端,x86的cpu上,製作出一個交叉編譯器
一般叫做arm-linux-gcc
用此arm-linux-gcc去編譯你的程序
編譯出來的程序,可以運行在嵌入式開發板,比如arm的linux下
極其詳盡的解釋:
我剛寫個教程,你去看就知道了:
交叉編譯詳解
交叉編譯詳解
http://www.crifan.com/files/doc/docbook/cross_compile/release/html/cross_compile.html
此教程的主要內容包括:
了什麼是交叉編譯
為何要有交叉編譯
什麼是工具鏈
什麼是交叉工具鏈
交叉編譯器的名字的命名規則:包括你這里所說的arm-linux-gcc的含義
如何獲得交叉編譯器
製作交叉編譯器的各種工具:簡介了常見的crosstool-ng,buildroot,crosstool等等工具
使用已有的交叉編譯器和自己手動編譯交叉編譯器之間的對比
交叉編譯方面的心得和注意事項
等你看完了後,建議用crosstool-ng,或者是buildroot去自己編譯一個arm-linux的gcc。
⑶ 找一個c語言編譯器,圖標綠顏色的,有個白色字母C
這個編譯器的全名叫:
C/C++程序設計學習與實驗系統
軟體簡介原名《Turbo C/C++ for Windows 集成實驗與學習環境》,支持32位與64位的WINDOWS 7,它是從事一線教學的大學教師根據多媒體教學演示和C語言初學者的特點,量身打造的一個簡單易用的C/C++程序設計教學演示、學習與實驗軟體(支持TC2/TC3、VC6、GCC四種編譯器,單步調試功能免費,沒有使用日期限制)。
這款軟體特變適合新手,比起vs2010來,操作簡單,是一個簡單易用的C/C++程序設計教學演示、學習與實驗軟體,還具有二級C語言模擬考試與自動評分試題解析功能,同時與軟體配套的《C/C++程序設計教程(配有同步實驗、流程式控制制語句動畫演示、提供教程中所有程序實例、實驗、作業中的源代碼(全部用VC6編譯器調試通過)》融入了作者多年的教學和學習經驗、編程建議、編程感悟,新增讀書筆記功能有利用戶 記錄教程中的重點、難點、學習心得體會,同時,為了便於C語言學習,加入C語言學習指導、入門程序設計教程,二級c語言考試題庫。
對於初學或者准備考二級的人來說它是一個不錯的選擇,它裡面有很多的題庫。功能上基本都是免費的,有少部分需要付費使用。