在Ubuntu下安裝GCC和其他一些Linux系統(tǒng)有點(diǎn)不一樣。
方法一:
該方法超簡(jiǎn)單: sudo apt-get build-depgcc 在ubuntu下有問題:E: 無效的操作 build-depgcc
就上面這條命令就可以搞定
方法二: sudo apt-get install build-essential
還是簡(jiǎn)單,一句命令也可以搞定
安裝完了可以執(zhí)行 gcc--version
的命令來查看版本,輸出如下:
gcc(GCC)4.2.3(Ubuntu4.2.3-2ubuntu7) Copyright(C)2007FreeSoftwareFoundation,Inc.
編譯則使用gcc命令。要往下學(xué)習(xí)首先就得熟悉gcc命令的用法。
gcc命令提供了非常多的命令選項(xiàng),但并不是所有都要熟悉,初學(xué)時(shí)掌握幾個(gè)常用的就可以了,到后面再慢慢學(xué)習(xí)其它選項(xiàng),免得因選項(xiàng)太多而打擊了學(xué)習(xí)的信心。
一. 常用編譯命令選項(xiàng) 假設(shè)源程序文件名為test.c。
1. 無選項(xiàng)編譯鏈接 用法:#gcc test.c 作用:將test.c預(yù)處理、匯編、編譯并鏈接形成可執(zhí)行文件。這里未指定輸出文件,默認(rèn)輸出為a.out。
2. 選項(xiàng) -o 用法:#gcc test.c -o test 作用:將test.c預(yù)處理、匯編、編譯并鏈接形成可執(zhí)行文件test。-o選項(xiàng)用來指定輸出文件的文件名。
3. 選項(xiàng) -E 用法:#gcc -E test.c -o test.i 作用:將test.c預(yù)處理輸出test.i文件。
4. 選項(xiàng) -S 用法:#gcc -S test.i 作用:將預(yù)處理輸出文件test.i匯編成test.s文件。
5. 選項(xiàng) -c 用法:#gcc -c test.s 作用:將匯編輸出文件test.s編譯輸出test.o文件。
6. 無選項(xiàng)鏈接 用法:#gcc test.o -o test 作用:將編譯輸出文件test.o鏈接成最終可執(zhí)行文件test。
7. 選項(xiàng)-O 用法:#gcc -O1 test.c -o test 作用:使用編譯優(yōu)化級(jí)別1編譯程序。級(jí)別為1~3,級(jí)別越大優(yōu)化效果越好,但編譯時(shí)間越長。
二. 多源文件的編譯方法
如果有多個(gè)源文件,基本上有兩種編譯方法: [假設(shè)有兩個(gè)源文件為test.c和testfun.c]
1. 多個(gè)文件一起編譯 用法:#gcc testfun.c test.c -o test 作用:將testfun.c和test.c分別編譯后鏈接成test可執(zhí)行文件。
2. 分別編譯各個(gè)源文件,之后對(duì)編譯后輸出的目標(biāo)文件鏈接。
用法: #gcc -c testfun.c //將testfun.c編譯成testfun.o #gcc -c test.c //將test.c編譯成test.o #gcc -o testfun.o test.o -o test //將testfun.o和test.o鏈接成test
以上兩種方法相比較,第一中方法編譯時(shí)需要所有文件重新編譯,而第二種方法可以只重新編譯修改的文件,未修改的文件不用重新編譯。
|