linuxgcc編譯命令行
『壹』 請問怎麼在虛擬機linux操作系統中安裝gcc編譯器
1. 下載GCC:訪問GCC官方網站(http://gcc.gnu.org/)或通過網路搜索以獲取GCC的最新版本,通常為3.4.0。可下載的文件包括gcc-3.4.0.tar.gz和gcc-3.4.0.tar.bz2,僅壓縮格式不同,內容相同。選擇任意一種格式進行下載。
2. 解壓縮文件:根據所選的壓縮格式,使用以下命令解壓(使用命令行提示符%):
```
% tar xzvf gcc-3.4.0.tar.gz
% bzcat gcc-3.4.0.tar.bz2 | tar xvf -
```
解壓後,將創建一個名為gcc-3.4.0的目錄,稱為源目錄,以後用${srcdir}指代其實際路徑。可以使用pwd命令查看當前目錄路徑。
3. 閱讀安裝說明:在源目錄的INSTALL文件夾中,有關於GCC安裝的詳細指導,可以通過瀏覽器打開index.html文件進行閱讀。
4. 創建目標目錄:為目標編譯結果建立一個獨立目錄,稱為${objdir},與源目錄${srcdir}平級。例如:
```
% mkdir gcc-build
% cd gcc-build
```
所有後續操作將在${objdir}目錄下進行。
5. 配置GCC:通過在源目錄下運行configure腳本來設置安裝路徑、支持的編程語言和其他選項。確保${destdir}與${objdir}和${srcdir}不同。例如:
```
% ../gcc-3.4.0/configure --prefix=/usr/local/gcc-3.4.0 --enable-threads=posix --disable-checking --enable-long-long --host=i386-redhat-linux --with-system-zlib --enable-languages=c,c++,java
```
此命令將GCC安裝在/usr/local/gcc-3.4.0目錄下,並支持C、C++和Java語言。
6. 開始編譯:執行make命令以開始編譯過程,這可能需要較長時間。
7. 安裝編譯器:運行make install命令將編譯後的文件安裝到指定目錄,可能需要管理員許可權。
8. 設置環境:為了能夠使用新安裝的編譯器,需要將GCC的bin目錄添加到PATH環境變數中,或創建符號鏈接。例如:
```
% cd /usr/bin
% ln -s ${destdir}/bin/gcc gcc34
% ln -s ${destdir}/bin/g++ g++34
% ln -s ${destdir}/bin/gcj gcj34
```
這將允許使用gcc34、g++34和gcj34命令調用新安裝的GCC。
9. 設置庫路徑:將${destdir}/lib添加到LD_LIBRARY_PATH環境變數中,或在其系統配置文件中添加相應設置。
10. 測試編譯器:使用新的gcc34、g++34命令編譯舊程序,確保新編譯器正常工作。
11. 清理源和目標目錄:根據需要,可以刪除源目錄${srcdir}和目標目錄${objdir}。
12. 在某些Linux發行版中,如Ubuntu或Fedora,可以選擇直接在倉庫中安裝GCC,避免編譯過程。
『貳』 linux 怎麼編譯c的源程序的gcc,編譯命令是什麼
在Linux下面,如果要編譯一個C語言源程序,我們要使用gcc編譯器。
先將源文件編譯成目標文件:gcc - c hello.c
生成hello.o文件,再將目標文件編譯成可執行文件:gcc -o hello hello.o
如:
int main(int argc,char **argv)
{
printf("Hello Linux ");
}
(2)linuxgcc編譯命令行擴展閱讀:
在使用GCC編譯器的時候,我們必須給出一系列必要的調用參數和文件名稱。GCC編譯器的調用參數大約有100多個,這里只介紹其中最基本、最常用的參數。具體可參考GCC Manual。
GCC最基本的用法是∶gcc [options] [filenames]
其中options就是編譯器所需要的參數,filenames給出相關的文件名稱。
網路_gcc
『叄』 如何用GCC在linux下編譯C語言程序
在Linux下面,如果要編譯一個C語言源程序,我們要使用GNU的gcc編譯器,假設我們有下面一個非常簡單的源程序(hello.c):
int main(int argc,char **argv)
{
printf("Hello Linux
");
}
要編譯這個程序,我們只要在命令行下執如橘耐行:
gcc -o hello hello.c
gcc 編譯器就會為我們生成一個hello的可執行渣春文件.執行./hello就可以看到程
序的輸出結果了
『肆』 linux浣跨敤gcc緙栬瘧c璇璦紼嬪簭linux浣跨敤gcc
Linux鐨刧cc鏄鎬庝箞鐢ㄧ殑錛
鍦ㄧ粓絝涓杈撳叆gcc鏂囦歡鍚-o鐩鏍囨枃浠跺悕鐒跺悗./鐩鏍囨枃浠跺悕灝辮屼簡錛屾病鏈夌洰鏍囨枃浠跺悕錛岃嚜鍔ㄥ瓨涓篴鎵ц./a灝辮屼簡銆傚湪浣跨敤Gcc緙栬瘧鍣ㄧ殑鏃跺欙紝鎴戜滑蹇呴』緇欏嚭涓緋誨垪蹇呰佺殑璋冪敤鍙傛暟鍜屾枃浠跺悕縐般侴CC緙栬瘧鍣ㄧ殑璋冪敤鍙傛暟澶х害鏈100澶氫釜錛屽叾涓澶氭暟鍙傛暟鎴戜滑鍙鑳芥牴鏈灝辯敤鏉庣儌涓嶅埌錛岃繖閲屽彧浠嬬粛鍏朵腑鏈鍩烘湰銆佹渶甯哥敤鐨勫弬鏁般侴CC鏈鍩烘湰鐨勭敤娉曟槸鈭秅cc鍏朵腑options灝辨槸緙栬瘧鍣ㄦ墍闇瑕佺殑鍙傛暟錛宖ilenames緇欏嚭鐩稿叧鐨勬枃浠跺悕縐般-c錛屽彧緙栬瘧錛屼笉榪炴帴鎴愪負鍙鎵ц屾枃浠訛紝緙栬瘧鍣ㄥ彧鏄鐢辮緭鍏ョ殑.c絳夋簮浠g爜鏂囦歡鐢熸垚.o涓哄悗緙鐨勭洰鏍囨枃浠訛紝閫氬父鐢ㄤ簬緙栬瘧涓嶅寘鍚涓葷▼搴忕殑瀛愮▼搴忔枃浠躲-ooutput_filename錛岀『瀹氳緭鍑烘枃浠剁殑鍚嶇О涓簅utput_filename錛屽悓鏃惰繖涓鍚嶇О涓嶈兘鍜屾簮鏂囦歡鍚屽悕銆傚傛灉涓嶇粰鍑鴻繖涓閫夐」錛実cc灝辯粰鍑洪勮劇殑鍙鎵ц屾枃浠禷.out銆-g錛屼駭鐢熺﹀彿璋冭瘯宸ュ叿(GNU鐨刧db)鎵蹇呰佺殑絎﹀彿璧勮錛岃佹兂瀵規簮浠g爜榪涜岃皟璇曪紝鎴戜滑灝卞繀欏誨姞鍏ヨ繖涓閫夐」銆-O錛屽圭▼搴忚繘琛屼紭鍖栫紪璇戙佽繛鎺ワ紝閲囩敤榪欎釜閫夐」錛屾暣涓婧愪唬鐮佷細鍦ㄧ紪璇戙佽繛鎺ヨ繃紼嬩腑榪涜屼紭鍖栧勭悊錛岃繖鏍蜂駭鐢熺殑鍙鎵ц屾枃浠剁殑鎵ц屾晥鐜囧彲浠ユ彁楂橈紝浣嗘槸錛岀紪璇戙佽繛鎺ョ殑閫熷害灝辯浉搴斿湴瑕佹參涓浜涖-O2錛屾瘮-O鏇村ソ鐨勪紭鍖栫紪璇戙佽繛鎺ワ紝褰撶劧鏁翠釜緙栬瘧銆佽繛鎺ヨ繃紼嬩細鏇存參銆-Idirname錛屽皢dirname鎵鎸囧嚭鐨勭洰褰曞姞鍏ュ埌紼嬪簭澶存枃浠剁洰褰曞垪琛ㄤ腑錛屾槸鍦ㄩ勭紪璇戣繃紼嬩腑浣跨敤鐨勫弬鏁般侰紼嬪簭涓鐨勫ご鏂囦歡鍖呭惈涓ょ嶆儏鍐碘埗A)#includemyinc.h>B)#include鈥渕yinc.h鈥濆叾涓錛孉綾諱嬌鐢ㄥ皷鎷鍙(>)錛孊綾諱嬌鐢ㄥ弻寮曞彿(鈥溾)銆傚逛簬A綾伙紝棰勫勭悊紼嬪簭cpp鍦ㄧ郴緇熼勮懼寘鍚鏂囦歡鐩褰(濡/usr/include)涓鎼滃葷浉搴旂殑鏂囦歡錛岃孊綾伙紝棰勫勭悊紼嬪簭鍦ㄧ洰鏍囨枃浠剁殑鏂囦歡澶瑰唴鎼滅儲鐩稿簲鏂囦歡銆侴CC鎵ц岃繃紼嬬ず渚嬬ず渚嬩唬鐮乤.c錛#includestdio.h>intmain(){printf("hellon");}棰勭紪璇戣繃紼嬶細榪欎釜榪囩▼澶勭悊瀹忓畾涔夊拰include錛屽苟鍋氳娉曟鏌ャ傚彲浠ョ湅鍒伴勭紪璇戝悗錛屼唬鐮佷粠5琛屾墿灞曞埌浜910琛屻倈cc-Ea.c-oa.icata.c|wc-l5cata.i|wc-l910緙栬瘧榪囩▼錛氳繖涓闃舵碉紝鐢熸垚奼囩紪浠g爜銆倈cc-Sa.i-oa.scata.s|wc-l59奼囩紪榪囩▼錛氳繖涓闃舵碉紝鐢熸垚鐩鏍囦唬鐮併傛よ繃紼嬬敓鎴怑LF鏍煎紡鐨勭洰鏍囦唬鐮併倈cc-ca.s-oa.ofilea.oa.o:ELF64-bitLSBrelocatable,AMDx86-64,version1(SYSV),notstripped閾炬帴榪囩▼錛氶摼鎺ヨ繃紼嬨傜敓鎴愬彲鎵ц屼唬鐮併傞摼鎺ュ垎涓轟袱縐嶏紝涓縐嶆槸闈欐侀摼鎺ワ紝鍙﹀栦竴縐嶆槸鍔ㄦ侀摼鎺ャ備嬌鐢ㄩ潤鎬侀摼鎺ョ殑濂藉勬槸錛屼緷璧栫殑鍔ㄦ侀摼鎺ュ簱杈冨皯錛屽瑰姩鎬侀摼鎺ュ簱鐨勭増鏈涓嶄細寰堟晱鎰燂紝鍏鋒湁杈冨ソ鐨勫吋瀹規э紱緙虹偣鏄鐢熸垚鐨勭▼搴忔瘮杈冨ぇ銆備嬌鐢ㄥ姩鎬侀摼鎺ョ殑濂藉勬槸錛岀敓鎴愮殑紼嬪簭姣旇緝灝忥紝鍗犵敤杈冨皯鐨勫唴瀛樸倈cca.o-oa紼嬪簭榪愯岋細./ahello緙栬緫鏈孌礕CC緙栬瘧綆鍗曚緥瀛愮紪鍐欏備笅浠g爜錛#includestdio.h>intmain(){printf("hello,world!n");}鎵ц屾儏鍐靛備笅錛歡cc-Ehello.c-ohello.igcc-Shello.i-ohello.sgcc-chello.s-ohello.ogcchello.c-ohello./hellohello,world!
linux涓嬫庝箞瀹夎単cc錛
1銆佸湪Linux鐜澧冧笅鍙瑕佽兘閾炬帴Internet灝卞彲浠ラ氳繃鏈鍦扮殑yum婧愭潵瀹夎咃紝鍦ㄧ粓絝涓嬭緭鍏yuminstallgcc灝卞彲浠
2銆乴inux鍐呮牳鑷甯︿簡榪欎簺紜浠剁殑椹卞姩錛屾棤欏諱笅杞藉畨瑁呯殑
3銆佷綘鐢ㄧ殑鏄鉶氭嫙鏈猴紝鍙瑕佸湪瀹夎卨inux鐨勬椂鍊欒懼畾濂戒互妗ヨ繛鐨勬柟寮忓叡浜獻nternet灝卞彲浠ヤ笂緗戠殑
4銆佽繖涓榪樻病璇曡繃銆備綘鍙浠ユ悳緔涓涓嬭櫄鎷熸満涓庢湰鍦版枃浠跺叡浜鐩稿叧鐨勫叧閿瀛楄瘯涓璇
5銆佽繖涓鍙鏄涓獁arning錛屼笉鏄痚rror錛岀郴緇熷凡緇忔彁紺轟綘鍙浠ヤ互瓚呯駭鐢ㄦ埛錛堢浉褰撲簬windows涓嬬殑綆$悊鍛樻潈闄愶級鐨勬槸韜浠界櫥闄嗕簡錛岃屼笖榪樿佽懼畾瀵嗙爜
榪樻湁浠涔堢枒闂錛屽挶浠鍐嶈ㄨ
鍦╨inux涓錛屾庝箞鐢╣cc緙栬瘧鏂囦歡錛
緙栬瘧鑰佷憨鏂規硶錛氭牸寮廹cc甯哥敤鐨勯夐」鏈綆鍗曠殑鏄:gcchello.c榛樿ょ殑鎯呭喌涓嬪皢鐢熸垚a.out鐨勫彲鎵ц屾ф枃浠訛紝鍙闇瑕佸湪緇堢涓婅緭鍏./a.out灝卞彲浠ョ湅鍒版墽琛岀殑緇撴灉錛屽傛灉浣犳兂鎸囧畾鐢熸垚鐩鏍囨枃浠剁殑鍚嶅瓧閭d箞浣犲彲渚嶆壈媯浠ュ姞涓-o閫夐」,鍛戒護濡備笅:gcc-ohellohello.c鍛戒護錛歡cc-chellohello.c
鎵╁睍璧勬枡錛
gcc鍛戒護鐨勫熀鏈鐢ㄦ硶gcc鍏朵腑錛宖ilenames涓烘枃浠跺悕錛沷ptions涓虹紪璇戦夐」銆傚綋涓嶄嬌鐢ㄤ換浣曠紪璇戦夐」緙栬瘧hello.c鏃訛紝gcc灝嗕細鑷鍔ㄧ紪璇戜駭鐢熶竴涓猘.out鐨勫彲鎵ц屾枃浠訛細#lshello.c#gcchello.c#lsa.outhello.c鎵ц岋細#./a.outHello,World!浣跨敤-o緙栬瘧閫夋嫨錛屽彲浠ヤ負緙栬瘧鍚庣殑鏂囦歡鎸囧畾涓涓鍚嶅瓧錛#lsa.outhello.c#gcchello.c-ohello#lsa.outhellohello.c鎵ц岋細#./helloHello,World!娉ㄦ剰錛氫嬌鐢-o閫夐」鏃訛紝-o鍚庨潰蹇呴』璺熶竴涓鏂囦歡鍚嶏紝鍗籌細-ooutfile銆備負浜嗕究浜庢弿榪板悗闈㈢殑閫夐」錛屽垹闄hello鍜宎.out鍙鎵ц屾枃浠躲瀹夎卨inux鏃跺備綍瀹夎匞CC錛
浣犲彲鍦ㄤ綘鐨勫厜鐩樹笂鎵撅紝鏈変竴涓狦CC鍖呭拰4涓渚濊禆鏂囦歡錛歡libc-devel-2.3.4-2.13.i386.rpmcpp-3.4.4-2.i386.rpmglibc-kernheaders-2.4-9.1.98.EL.i386.rpmglibc-headers-2.3.4-2.13.i386.rpmgcc-3.4.4-2.i386.rpm濡傛病鏈夌殑璇濓紝鍙浠ョ敤緗戜笂鑷鍔ㄦ洿鏂扮殑鏂瑰紡瀹夎咃紝濡俧edora鐨勮瘽鍙鐢▂uminstallgcc榪欐潯鍛戒護鑷鍔ㄥ畨瑁呫