這篇文章給大家介紹GCC編譯命令有哪些,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
成都創(chuàng)新互聯(lián)公司于2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目做網(wǎng)站、網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元可克達(dá)拉做網(wǎng)站,已為上家服務(wù),為可克達(dá)拉各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575
大家沒有IDE時(shí)候,可能一開始有點(diǎn)不習(xí)慣,但是堅(jiān)持用一段時(shí)間,你就會(huì)愛上文本編輯器+編譯器的模式了,不管是編譯速度還是編譯時(shí)的界面而言,這都方式都比IDE炫酷,畢竟再怎么樣也是免費(fèi)的,是吧。這里再來講一下終端,可能絕大多數(shù)同學(xué)以前只使用過Windows底下的“CMD”,即“命令提示符”,我還聽過有人把它叫做DOS界面等等。而在Linux里面有一個(gè)長得差不多的東西,叫做終端,或者控制臺(tái)等等。如圖1所示。圖1 Windows下的“命令提示符”和Linux下的“終端” 看圖1上的兩張圖片都是黑不溜秋的界面,兩個(gè)東西難道不一樣嗎?其實(shí)啊,這兩個(gè)是完全從設(shè)計(jì)哲學(xué)角度就不一樣的東西。我們先來說終端,這個(gè)終端是Linux從Unix時(shí)代繼承過來的產(chǎn)物,可能現(xiàn)在提到計(jì)算機(jī),大家第一反應(yīng)就是應(yīng)該像筆記本或者臺(tái)式機(jī)一樣的東西,很小巧,每人一臺(tái)在辦公室辦公。其實(shí)早期的計(jì)算機(jī)生成成本太貴,體積太大,都是以小型機(jī)或者大型機(jī)形式存在的,可能每個(gè)公司也就一臺(tái),其他用戶都是使用串口插到這臺(tái)大型機(jī)上面來工作的,他們面前只有一個(gè)叫做“終端”(或者控制臺(tái)的設(shè)備,上面跑的程序叫做Shell)檔或者其他辦公,因此Unix最早期的設(shè)計(jì)哲學(xué)就是中心化數(shù)據(jù)處理的多用戶多任務(wù)操作系統(tǒng),而Linux完美繼承了這一點(diǎn)。這種方式是不是有點(diǎn)類似于現(xiàn)在的服務(wù)器架構(gòu)?這就是為什么,其他領(lǐng)域Windows都比Linux占優(yōu)勢(shì),就是服務(wù)器領(lǐng)域這塊蛋糕一直在Linux嘴里。后來由于Linux操作系統(tǒng)引入了GUI,而這些GUI都只是Linux系統(tǒng)里面的一個(gè)進(jìn)程,真正的Linux還是那個(gè)終端。如圖2所示。 而Windows不一樣,Windows誕生之初,個(gè)人電腦的業(yè)務(wù)就已經(jīng)開始蓬勃發(fā)展,而他們最早為IBM PC開發(fā)的DOS系統(tǒng)叫做MS-DOS,當(dāng)時(shí)有很多版本的DOS,微軟的DOS只是其中一個(gè),順便說一下,DOS都是單用戶,單任務(wù)操作系統(tǒng),僅僅是為了用戶操作磁盤里面的數(shù)據(jù)和軟件而設(shè)計(jì)的。后來微軟真正獨(dú)領(lǐng)操作系統(tǒng)風(fēng)騷的,是其推出了Windows,其實(shí)Windows界面和最早只是DOS里面的一個(gè)程序而已,用過Windows95的就知道,開完機(jī)電腦呈現(xiàn)給你的是一個(gè)命令行,要輸入一長串命令才可以進(jìn)入操作系統(tǒng),這種機(jī)制直到Windows XP才被取消,Windows成為真正的Windows。理所當(dāng)然,由于某些用戶的習(xí)慣“DOS界面”下來了。1,shell區(qū)分大小寫,DOS不區(qū)分大小寫;2,一般而言,shell的命令的開關(guān)可以簡(jiǎn)寫(比如說“-a -l“可以簡(jiǎn)寫為“-al“),而DOS的則不允許;3,在腳本編寫上的語法差別極大,比如說:兩者的流程控制語句語法不同,變量的語法不同等;4,shell可以在UNIX、GNU/Linux和Win下(cygwin bash shell)工作,DOS則還沒有聽說過能在Win/DOS以外的系統(tǒng)中工作;5,shell原生支持正則表達(dá)式,DOS則不是。后來Windows 7之后,微軟也在個(gè)人操作系統(tǒng)上面加入了一個(gè)叫做“Power shell”的軟件,而我們之前VS Code里面自帶的終端軟件就是Powershell。以上就是Shell和命令提示符的介紹。Shell命令在操作時(shí),輸入命令的格式為:命令參數(shù)1 參數(shù)2 … 參數(shù)n。來看之前常用的編譯命令“gcc -o hello helloeorld.c”如圖3所示。注意,在shell里運(yùn)行GCC一定要區(qū)分所有大小寫。GCC的參數(shù)功能還有很多,我們?cè)僖黄饋砜磶讉€(gè)。如圖4所示,這個(gè)表只是羅列了幾個(gè)常用的參數(shù),如果有其他新參數(shù)需要使用,我們到時(shí)候再說。注意一下圖3里面的參數(shù)1就是我后文中所說的“選項(xiàng)”,這兩個(gè)是一回事情。還是以之前的helloworld.c為例子,我們之前說到,一個(gè)程序的編譯分成“預(yù)處理”->“編譯”->“匯編”->“鏈接”這四個(gè)步驟,接下來我們用gcc一步步來看一下他們所產(chǎn)生的中間文件。(1)只激活預(yù)處理,不進(jìn)行后續(xù)三步,此時(shí)使用的命令應(yīng)該為“gcc -E ./helloworld.c > propress.c”,這個(gè)功能需要將預(yù)處理完成之后的文件存儲(chǔ)到一個(gè)新的文件里面,我們這里使用了“propress.c”這個(gè)名字。如圖4所示。(2)只做編譯,不進(jìn)行后續(xù)步驟。此時(shí)使用的命令應(yīng)該為“gcc -S .\helloworld.c”,運(yùn)行完成后,編譯器會(huì)在當(dāng)前文件夾里面輸出一個(gè)名叫helloworld.s的文件,它就是GCC生成的匯編語言。如圖5所示。(3)只生成目標(biāo)文件,不進(jìn)行后續(xù)的鏈接步驟。此時(shí)使用的命令應(yīng)該為“gcc -c .\helloworld.c”,運(yùn)行完成后,編譯器會(huì)在當(dāng)前文件夾里面輸出一個(gè)名叫helloworld.o的文件,它就是GCC生成的目標(biāo)文件。如圖6所示。VS Code一開始可能無法打開二進(jìn)制文件,大家需要去應(yīng)用市場(chǎng)自行下載一個(gè)叫“binary”的插件(4)最后一步就是利用gcc生成最后的可執(zhí)行文件,使用命令“gcc -o helloworld helloworld.c”最終會(huì)生成可執(zhí)行文件helloworld.exe,注意此時(shí)的.exe后綴名是自動(dòng)加上的,可以隱藏。此外,如果大家對(duì)終端操作起來還是覺得不習(xí)慣,有一個(gè)叫做Dev Cpp的軟件也是個(gè)集成MinGW的IDE,大家可以自己去嘗試。關(guān)于GCC編譯命令有哪些就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
文章名稱:GCC編譯命令有哪些
網(wǎng)頁路徑:
http://weahome.cn/article/gojiid.html