編譯方法:格式 gcc [option] [sourcefilename]常用的選項最簡單的是:gcc hello.c默認(rèn)的情況下將生成a.out的可執(zhí)行性文件,
站在用戶的角度思考問題,與客戶深入溝通,找到馬鞍山網(wǎng)站設(shè)計與馬鞍山網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗(yàn)好的作品,建站類型包括:做網(wǎng)站、成都網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、空間域名、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋馬鞍山地區(qū)。
只需要在終端上輸入./a.out就可以看到執(zhí)行的結(jié)果,如果你想指定生成目標(biāo)文件的名字那么你可以加上 -o選項,命令如下:gcc -o hello hello.c
命令:gcc -c hello hello.c
擴(kuò)展資料:
gcc命令的基本用法
gcc[options]?[filenames] ?
其中,filenames為文件名;options為編譯選項。
當(dāng)不使用任何編譯選項編譯hello.c時,gcc將會自動編譯產(chǎn)生一個a.out的可執(zhí)行文件:
[root@localhost?c]#?ls ?
hello.c ?
[root@localhost?c]#?gcc?hello.c ?
[root@localhost?c]#?ls ?
a.out??hello.c?
執(zhí)行:
[root@localhost?c]#?./a.out ?
Hello,?World!?
使用-o編譯選擇,可以為編譯后的文件指定一個名字:
[root@localhost?c]#?ls ?
a.out??hello.c ?
[root@localhost?c]#?gcc?hello.c?-o?hello ?
[root@localhost?c]#?ls ?
a.out??hello??hello.c ?
執(zhí)行:
[root@localhost?c]#?./hello ?
Hello,?World!?
注意:使用-o選項時,-o后面必須跟一個文件名,即:-o outfile。
為了便于描述后面的選項,刪除hello和a.out可執(zhí)行文件。
Linux自帶了gcc編譯器,直接使用gcc test.c命令編譯生成a.out可執(zhí)行文件,或者使用命令gcc - o test test.c編譯生成test可執(zhí)行文件,這樣避免了覆蓋前面的a.out,新手就先用自帶的練手了,很方便的,我也是剛學(xué)的
Linux 下可用的編譯器有 GCC、EGCS 和 PGCC,其中最常用的編譯器便是 GCC。
GCC 起初是 GNU 推出的 C語言編
譯器,用于類 Unix 系統(tǒng)下的編程,所以名為 GNU C Compiler 。隨著眾多自由開發(fā)者的加入,GCC
發(fā)展迅速,如今已成為一個支持眾多語言的編譯器了,其中包括 C、C++、Ada、Object C 和 Java 等,以至于 GCC 開始被擴(kuò)展為
GNU Compiler Collection ,也就是“GNU 編譯器集合”的意思。
GCC用法:
1、GCC基本用法及其選項
gcc 或 g++ 的用法跟參數(shù)含義幾乎一樣,他們最基本的用法是:
2、只編譯子程序(-c)
3、產(chǎn)生目標(biāo)文件(-o)
4、附加調(diào)試信息(-g)
5、多文件編譯
6、連接庫文件。
當(dāng)我們關(guān)機(jī)或者重啟時,都應(yīng)該先執(zhí)行以下 sync 指令,把內(nèi)存的數(shù)據(jù)寫入磁盤,防止數(shù)據(jù)丟失。
命令: cd [相對路徑或絕對路徑]
命令: ls [-al]
命令: mkdir [-p] 目錄
-p 父目錄不存在情況下先生成父目錄
命令: rm [-rf] 目錄
-r 遞歸 -f 強(qiáng)制
兩個一起用你可以刪掉世界(很暴力很血腥,危險的命令)
命令: echo [選項] [輸出內(nèi)容]
命令: head 文件
tail :指定行數(shù)或者動態(tài)查看
命令: touch 文件名
命令: rm -rf 文件名
vi是linux中最經(jīng)典的文本編輯器,vi一共有3種工作模式,分別是正常模式,編輯模式(插入模式),命令行模式:
- 命令: vi 文件名 或 vim 文件名 都可進(jìn)入vi編譯器進(jìn)行文件的編譯
---首先輸入 vi 文件名 進(jìn)入的是正常模式
---正常模式--編輯模式:按 i o a 任意一個鍵
---正常模式--命令行模式:按 :
---編輯模式--命令行模式:按 Esc
vi編譯器快捷鍵的使用
1.拷貝當(dāng)前行 yy,拷貝當(dāng)前行向下的5行 5yy,并粘貼 p;
2.刪除當(dāng)前行 dd,刪除當(dāng)前行向下的5行 5dd;
3.在文件中查找某個單詞(命令行模式下)/關(guān)鍵字 ,回車進(jìn)行查找,輸入 n 查找下一個
4.設(shè)置文件的行號,取消文件的行號(命令行模式下) :set nu 和 :set nonu
5.編輯 /etc/profile 文件,使用快捷鍵到底文檔的最末行[G]和最首行[gg],注意這些都是在正常模 式下執(zhí)行的。
6.在一個文件中輸入 "hello" ,然后又撤銷這個動作,再正常模式下輸入 u
文件的查看命令: cat more less tail
cat :由第一行開始顯示文件內(nèi)容
more :百分比顯示
less :翻頁查看
tail :指定行數(shù)或者動態(tài)查看
命令: chmod -R 權(quán)限設(shè)置 需要更改權(quán)限的文件夾名
grep :查找字符串
grep命令通常要和管道命令進(jìn)行連用:
Linux壓縮包的兩種后綴格式:
- xxx.tar 打包,大小不會進(jìn)行壓縮
- xxx.tar.gz 打包并壓縮文件大小
命令: tar
命令: du -h /目錄
命令: ifconfig
命令: netstat [-anp]
命令: ping ip地址
命令: ps [-ef]
命令: kill -9 PID號
命令: service 服務(wù)名 [start | stop | restart | reload | status]
在 CentOS7.0 后 不再使用 service ,而是下面這個命令
service [start | stop | restart | reload | status] 服務(wù)名
命令: top [選項]
命令: rpm -e rpm包的名稱
命令: rpm -ivh rpm包全路徑名稱
[圖片上傳失敗...(image-f71252-1630371708953)]
2004年4月20日最新版本的GCC編譯器3.4.0發(fā)布了。目前,GCC可以用來編譯C/C++、FORTRAN、JAVA、OBJC、ADA等語言的程序,可根據(jù)需要選擇安裝支持的語言。GCC 3.4.0比以前版本更好地支持了C++標(biāo)準(zhǔn)。本文以在Redhat Linux上安裝GCC3.4.0為例,介紹了GCC的安裝過程。
安裝之前,系統(tǒng)中必須要有cc或者gcc等編譯器,并且是可用的,或者用環(huán)境變量CC指定系統(tǒng)上的編譯器。如果系統(tǒng)上沒有編譯器,不能安裝源代碼形式的GCC 3.4.0。如果是這種情況,可以在網(wǎng)上找一個與你系統(tǒng)相適應(yīng)的如RPM等二進(jìn)制形式的GCC軟件包來安裝使用。本文介紹的是以源代碼形式提供的GCC軟件包的安裝過程,軟件包本身和其安裝過程同樣適用于其它Linux和Unix系統(tǒng)。
系統(tǒng)上原來的GCC編譯器可能是把gcc等命令文件、庫文件、頭文件等分別存放到系統(tǒng)中的不同目錄下的。與此不同,現(xiàn)在GCC建議我們將一個版本的GCC安裝在一個單獨(dú)的目錄下。這樣做的好處是將來不需要它的時候可以方便地刪除整個目錄即可(因?yàn)镚CC沒有uninstall功能);缺點(diǎn)是在安裝完成后要做一些設(shè)置工作才能使編譯器工作正常。在本文中我采用這個方案安裝GCC 3.4.0,并且在安裝完成后,仍然能夠使用原來低版本的GCC編譯器,即一個系統(tǒng)上可以同時存在并使用多個版本的GCC編譯器。
按照本文提供的步驟和設(shè)置選項,即使以前沒有安裝過GCC,也可以在系統(tǒng)上安裝上一個可工作的新版本的GCC編譯器。
1. 下載
在GCC網(wǎng)站上()或者通過網(wǎng)上搜索可以查找到下載資源。目前GCC的最新版本為 3.4.0。可供下載的文件一般有兩種形式:gcc-3.4.0.tar.gz和gcc-3.4.0.tar.bz2,只是壓縮格式不一樣,內(nèi)容完全一致,下載其中一種即可。
2. 解壓縮
根據(jù)壓縮格式,選擇下面相應(yīng)的一種方式解包(以下的“%”表示命令行提示符):
% tar xzvf gcc-3.4.0.tar.gz
或者
% bzcat gcc-3.4.0.tar.bz2 | tar xvf -
新生成的gcc-3.4.0這個目錄被稱為源目錄,用${srcdir}表示它。以后在出現(xiàn)${srcdir}的地方,應(yīng)該用真實(shí)的路徑來替換它。用pwd命令可以查看當(dāng)前路徑。
在${srcdir}/INSTALL目錄下有詳細(xì)的GCC安裝說明,可用瀏覽器打開index.html閱讀。
3. 建立目標(biāo)目錄
目標(biāo)目錄(用${objdir}表示)是用來存放編譯結(jié)果的地方。GCC建議編譯后的文件不要放在源目錄${srcdir]中(雖然這樣做也可以),最好單獨(dú)存放在另外一個目錄中,而且不能是${srcdir}的子目錄。
例如,可以這樣建立一個叫 gcc-build 的目標(biāo)目錄(與源目錄${srcdir}是同級目錄):
% mkdir gcc-build
% cd gcc-build
以下的操作主要是在目標(biāo)目錄 ${objdir} 下進(jìn)行。
4. 配置
配置的目的是決定將GCC編譯器安裝到什么地方(${destdir}),支持什么語言以及指定其它一些選項等。其中,${destdir}不能與${objdir}或${srcdir}目錄相同。
配置是通過執(zhí)行${srcdir}下的configure來完成的。其命令格式為(記得用你的真實(shí)路徑替換${destdir}):
% ${srcdir}/configure --prefix=${destdir} [其它選項]
例如,如果想將GCC 3.4.0安裝到/usr/local/gcc-3.4.0目錄下,則${destdir}就表示這個路徑。
在我的機(jī)器上,我是這樣配置的:
% ../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語言,其它選項參見GCC提供的幫助說明。
5. 編譯
% make
這是一個漫長的過程。在我的機(jī)器上(P4-1.6),這個過程用了50多分鐘。
6. 安裝
執(zhí)行下面的命令將編譯好的庫文件等拷貝到${destdir}目錄中(根據(jù)你設(shè)定的路徑,可能需要管理員的權(quán)限):
% make install
至此,GCC 3.4.0安裝過程就完成了。
6. 其它設(shè)置
GCC 3.4.0的所有文件,包括命令文件(如gcc、g++)、庫文件等都在${destdir}目錄下分別存放,如命令文件放在bin目錄下、庫文件在lib下、頭文件在include下等。由于命令文件和庫文件所在的目錄還沒有包含在相應(yīng)的搜索路徑內(nèi),所以必須要作適當(dāng)?shù)脑O(shè)置之后編譯器才能順利地找到并使用它們。
6.1 gcc、g++、gcj的設(shè)置
要想使用GCC 3.4.0的gcc等命令,簡單的方法就是把它的路徑${destdir}/bin放在環(huán)境變量PATH中。我不用這種方式,而是用符號連接的方式實(shí)現(xiàn),這樣做的好處是我仍然可以使用系統(tǒng)上原來的舊版本的GCC編譯器。
首先,查看原來的gcc所在的路徑:
% which gcc
在我的系統(tǒng)上,上述命令顯示:/usr/bin/gcc。因此,原來的gcc命令在/usr/bin目錄下。我們可以把GCC 3.4.0中的gcc、g++、gcj等命令在/usr/bin目錄下分別做一個符號連接:
% 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來調(diào)用GCC 3.4.0的gcc、g++、gcj完成對C、C++、JAVA程序的編譯了。同時,仍然能夠使用舊版本的GCC編譯器中的gcc、g++等命令。
6.2 庫路徑的設(shè)置
將${destdir}/lib路徑添加到環(huán)境變量LD_LIBRARY_PATH中,最好添加到系統(tǒng)的配置文件中,這樣就不必要每次都設(shè)置這個環(huán)境變量了。
例如,如果GCC 3.4.0安裝在/usr/local/gcc-3.4.0目錄下,在RH Linux下可以直接在命令行上執(zhí)行或者在文件/etc/profile中添加下面一句:
setenv LD_LIBRARY_PATH /usr/local/gcc-3.4.0/lib:$LD_LIBRARY_PATH
7. 測試
用新的編譯命令(gcc34、g++34等)編譯你以前的C、C++程序,檢驗(yàn)新安裝的GCC編譯器是否能正常工作。
8. 根據(jù)需要,可以刪除或者保留${srcdir}和${objdir}目錄。