linux下的cc/gcc命令
linux系統(tǒng)的C編譯器為gcc,它是GNU推出的功能強(qiáng)大的編譯工具,因?yàn)閁NIX系統(tǒng)的編譯器為cc,所以在Linux系統(tǒng)還保留一個(gè)鏈接cc,用于和UNIX的向后兼容。
其中g(shù)++和c++與gcc和cc的使用參數(shù)大致相同
gcc/cc常用命令 -o:指定生成的輸出文件; -E:僅執(zhí)行編譯預(yù)處理; -S:將C代碼轉(zhuǎn)換為匯編代碼; -wall:顯示警告信息; -c:僅執(zhí)行編譯操作,不進(jìn)行連接操作。 -O:使用編譯優(yōu)化級別1編譯程序。級別為1~3,級別越大優(yōu)化效果越好,但編譯時(shí)間越長。1 假設(shè)源程序文件名為test.c
#include <stdio.h>void main(){printf("Hello world! \n ");} 輸入 gcc test.c將test.c預(yù)處理、匯編、編譯并鏈接形成可執(zhí)行文件。這里未指定輸出文件,默認(rèn)輸出為a.out。
2 輸入 gcc -o 指定生成的輸出文件
將test.c預(yù)處理、匯編、編譯并鏈接形成可執(zhí)行文件test。-o選項(xiàng)用來指定輸出文件的文件名。
得到可執(zhí)行文件為exp
3 輸入gcc -E 僅執(zhí)行編譯預(yù)處理
gcc -o test.i -E test.c將test.c預(yù)處理輸出test.i文件。
4 輸入 gcc -S 將C代碼轉(zhuǎn)換為匯編代碼;
gcc -S test.i將預(yù)處理輸出文件test.i匯編成test.s文件
5 輸入 gcc -c 僅執(zhí)行編譯操作,不進(jìn)行連接操作。
gcc -c test.s將匯編輸出文件test.s編譯輸出test.o文件。
6 無選項(xiàng)鏈接
gcc test.o -o test
將編譯輸出文件test.o鏈接成最終可執(zhí)行文件test。
7 輸入 gcc -O
gcc -O1 test.c -o test使用編譯優(yōu)化級別1編譯程序。級別為1~3,級別越大優(yōu)化效果越好,但編譯時(shí)間越長。
8 多個(gè)文件一起編譯
gcc test1.c test.c -o test將test1.c和test.c分別編譯后鏈接成test可執(zhí)行文件。2分別編譯各個(gè)源文件,之后對編譯后輸出的目標(biāo)文件鏈接。
gcc -c test1.c #將test1.c編譯成testfun.o
gcc -c test.c #將test.c編譯成test.o
gcc -o test1.o test.o -o test #將test1.o和test.o鏈接成test
其他參數(shù)
總結(jié)
以上是生活随笔為你收集整理的linux下的cc/gcc命令的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: labview 上位机软件开发——实用技
- 下一篇: 中国税务申报软件市场深度研究分析报告