在Linux下面,如果要編譯一個C語言源程序,我們要使用gcc編譯器。
先將源文件編譯成目標文件:gcc - c hello.c
生成hello.o文件,再將目標文件編譯成可執行文件:gcc -o hello hello.o
如:
int main(int argc,char **argv)
{
printf("Hello Linux ");
}
(1)gcc編譯器生成目標文件擴展閱讀:
在使用GCC編譯器的時候,我們必須給出一系列必要的調用參數和文件名稱。GCC編譯器的調用參數大約有100多個,這里只介紹其中最基本、最常用的參數。具體可參考GCC Manual。
GCC最基本的用法是∶gcc [options] [filenames]
其中options就是編譯器所需要的參數,filenames給出相關的文件名稱。
網路_gcc
⑵ linux gcc編譯好C文件後生成.o目標文件,但是在執行中($./test)出現沒有那個文件或目錄,請大神幫忙。
.o文件是不能被執行的, c的源碼要經過編譯和鏈接才能生成可執行文件,你只是編譯了,沒有鏈接,這個文件相當於Windows下的test.obj而已。gcc -Wall test.c -o test
⑶ gcc緙栬瘧鍣ㄧ敓鎴愮殑鐩鏍囨枃浠舵槸浠涔堬紵
1銆侀勫勭悊
鍦ㄨ繖涓闃舵碉紝婧愮爜涓鐨勬墍鏈夐勫勭悊璇鍙ュ緱鍒板勭悊錛屼緥濡傦細#include璇鍙ユ墍鍖呭惈鐨勬枃浠跺唴瀹規浛鎹㈡帀璇鍙ユ湰韜錛屾墍鏈夊凡瀹氫箟鐨勫畯琚灞曞紑銆
鏍規嵁#ifdef錛#if絳夎鍙ョ殑鏉′歡鏄鍚︽垚絝嬪彇鑸嶇浉搴旂殑閮ㄥ垎錛岄勫勭悊涔嬪悗婧愮爜涓涓嶅啀鍖呭惈浠諱綍棰勫勭悊璇鍙ャ
GCC棰勫勭悊闃舵靛彲浠ョ敓鎴.i鐨勬枃浠訛紝閫氳繃閫夐」-E鍙浠ヤ嬌緙栬瘧鍣ㄥ湪棰勫勭悊緇撴潫鏃跺氨鍋滄㈢紪璇戙備緥濡傦細gcc -E -o hello.i hello.c
2銆佺紪璇
榪欎竴闃舵碉紝緙栬瘧鍣ㄥ規簮鐮佽繘琛岃瘝娉曞垎鏋愩佽娉曞垎鏋愩佷紭鍖栫瓑鎿嶄綔錛屾渶鍚庣敓鎴愭眹緙栦唬鐮併傝繖鏄鏁翠釜榪囩▼涓鏈閲嶈佺殑涓姝ワ紝鍥犳や篃甯告妸鏁翠釜榪囩▼縐頒負緙栬瘧銆
鍙浠ラ氳繃閫夐」-S浣縂CC鍦ㄨ繘琛屽畬緙栬瘧鍚庡仠姝錛岀敓鎴.s鐨勬眹緙栫▼搴忋備緥濡傦細gcc -S -o hello.s hello.c
3銆佹眹緙
榪欎竴闃舵典嬌鐢ㄦ眹緙栧櫒瀵規眹緙栦唬鐮佽繘琛屽勭悊錛岀敓鎴愭満鍣ㄨ璦浠g爜錛屼繚瀛樺湪鍚庣紑涓.o鐨勭洰鏍囨枃浠朵腑銆
褰撶▼搴忕敱澶氫釜浠g爜鏂囦歡鏋勬垚鏃訛紝姣忎釜鏂囦歡閮借佸厛瀹屾垚奼囩紪宸ヤ綔錛岀敓鎴.o鐩鏍囨枃浠跺悗錛屾墠鑳借繘鍏ヤ笅涓姝ョ殑閾炬帴宸ヤ綔銆
鐩鏍囨枃浠跺凡緇忔槸鏈緇堢▼搴忕殑鏌愪竴閮ㄥ垎浜嗭紝鍙鏄鍦ㄩ摼鎺ヤ箣鍓嶈繕涓嶈兘鎵ц屻傚彲浠ラ氳繃-c閫夐」鐢熸垚鐩鏍囨枃浠訛細gcc -c -o hello.o hello.c
4銆侀摼鎺
緇忚繃奼囩紪浠ュ悗鐨勬満鍣ㄤ唬鐮佽繕涓嶈兘鐩存帴榪愯屻備負浜嗕嬌鎿嶄綔緋葷粺鑳藉熸g『鍔犺澆鍙鎵ц屾枃浠訛紝鏂囦歡涓蹇呴』鍖呭惈鍥哄畾鏍煎紡鐨勪俊鎮澶達紝榪樺繀欏諱笌緋葷粺鎻愪緵鐨勫惎鍔ㄤ唬鐮侀摼鎺ヨ搗鏉ユ墠鑳芥e父榪愯岋紝榪欎簺宸ヤ綔閮芥槸鐢遍摼鎺ュ櫒鏉ュ畬鎴愮殑銆倈cc -o hello hello.c
5銆佽繍琛岋細鎵ц.EXE鏂囦歡錛屽緱鍒拌繍琛岀粨鏋溿