在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鏂囦欢锛屽缑鍒拌繍琛岀粨鏋溿