中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

GCC編譯命令有哪些

發布時間:2021-11-11 18:06:14 來源:億速云 閱讀:145 作者:柒染 欄目:互聯網科技

這篇文章給大家介紹GCC編譯命令有哪些,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

大家沒有IDE時候,可能一開始有點不習慣,但是堅持用一段時間,你就會愛上文本編輯器+編譯器的模式了,不管是編譯速度還是編譯時的界面而言,這都方式都比IDE炫酷,畢竟再怎么樣也是免費的,是吧。
這里再來講一下終端,可能絕大多數同學以前只使用過Windows底下的“CMD”,即“命令提示符”,我還聽過有人把它叫做DOS界面等等。而在Linux里面有一個長得差不多的東西,叫做終端,或者控制臺等等。如圖1所示。
                           
GCC編譯命令有哪些
圖1 Windows下的“命令提示符”和Linux下的“終端”

看圖1上的兩張圖片都是黑不溜秋的界面,兩個東西難道不一樣嗎?其實啊,這兩個是完全從設計哲學角度就不一樣的東西。我們先來說終端,這個終端是Linux從Unix時代繼承過來的產物,可能現在提到計算機,大家第一反應就是應該像筆記本或者臺式機一樣的東西,很小巧,每人一臺在辦公室辦公。其實早期的計算機生成成本太貴,體積太大,都是以小型機或者大型機形式存在的,可能每個公司也就一臺,其他用戶都是使用串口插到這臺大型機上面來工作的,他們面前只有一個叫做“終端”(或者控制臺的設備,上面跑的程序叫做Shell)檔或者其他辦公,因此Unix最早期的設計哲學就是中心化數據處理的多用戶多任務操作系統,而Linux完美繼承了這一點。這種方式是不是有點類似于現在的服務器架構?這就是為什么,其他領域Windows都比Linux占優勢,就是服務器領域這塊蛋糕一直在Linux嘴里。后來由于Linux操作系統引入了GUI,而這些GUI都只是Linux系統里面的一個進程,真正的Linux還是那個終端。如圖2所示。

GCC編譯命令有哪些
圖2 歷史上的“終端

而Windows不一樣,Windows誕生之初,個人電腦的業務就已經開始蓬勃發展,而他們最早為IBM PC開發的DOS系統叫做MS-DOS,當時有很多版本的DOS,微軟的DOS只是其中一個,順便說一下,DOS都是單用戶,單任務操作系統,僅僅是為了用戶操作磁盤里面的數據和軟件而設計的。后來微軟真正獨領操作系統風騷的,是其推出了Windows,其實Windows界面和最早只是DOS里面的一個程序而已,用過Windows95的就知道,開完機電腦呈現給你的是一個命令行,要輸入一長串命令才可以進入操作系統,這種機制直到Windows XP才被取消,Windows成為真正的Windows。理所當然,由于某些用戶的習慣“DOS界面”下來了。
DOS和Shell的區別大致如下。
1,shell區分大小寫,DOS不區分大小寫;
2,一般而言,shell的命令的開關可以簡寫(比如說“-a -l“可以簡寫為“-al“),而DOS的則不允許;
3,在腳本編寫上的語法差別極大,比如說:兩者的流程控制語句語法不同,變量的語法不同等;
4,shell可以在UNIX、GNU/Linux和Win下(cygwin bash shell)工作,DOS則還沒有聽說過能在Win/DOS以外的系統中工作;
5,shell原生支持正則表達式,DOS則不是。
后來Windows 7之后,微軟也在個人操作系統上面加入了一個叫做“Power shell”的軟件,而我們之前VS Code里面自帶的終端軟件就是Powershell。以上就是Shell和命令提示符的介紹。
Shell命令在操作時,輸入命令的格式為:命令參數1 參數2 … 參數n。來看之前常用的編譯命令“gcc -o hello helloeorld.c”如圖3所示。注意,在shell里運行GCC一定要區分所有大小寫。

GCC編譯命令有哪些
GCC編譯命令有哪些
圖3 GCC常用選項

GCC的參數功能還有很多,我們再一起來看幾個。如圖4所示,這個表只是羅列了幾個常用的參數,如果有其他新參數需要使用,我們到時候再說。注意一下圖3里面的參數1就是我后文中所說的“選項”,這兩個是一回事情。
還是以之前的helloworld.c為例子,我們之前說到,一個程序的編譯分成“預處理”->“編譯”->“匯編”->“鏈接”這四個步驟,接下來我們用gcc一步步來看一下他們所產生的中間文件。
(1)只激活預處理,不進行后續三步,此時使用的命令應該為“gcc -E ./helloworld.c > propress.c”,這個功能需要將預處理完成之后的文件存儲到一個新的文件里面,我們這里使用了“propress.c”這個名字。如圖4所示。

GCC編譯命令有哪些
圖4 gcc預處理命令

(2)只做編譯,不進行后續步驟。此時使用的命令應該為“gcc -S .\helloworld.c”,運行完成后,編譯器會在當前文件夾里面輸出一個名叫helloworld.s的文件,它就是GCC生成的匯編語言。如圖5所示。

GCC編譯命令有哪些
圖5 gcc生成匯編語言文件
 
(3)只生成目標文件,不進行后續的鏈接步驟。此時使用的命令應該為“gcc -c .\helloworld.c”,運行完成后,編譯器會在當前文件夾里面輸出一個名叫helloworld.o的文件,它就是GCC生成的目標文件。如圖6所示。VS Code一開始可能無法打開二進制文件,大家需要去應用市場自行下載一個叫“binary”的插件

GCC編譯命令有哪些
圖6 目標文件

(4)最后一步就是利用gcc生成最后的可執行文件,使用命令“gcc -o helloworld helloworld.c”最終會生成可執行文件helloworld.exe,注意此時的.exe后綴名是自動加上的,可以隱藏。
此外,如果大家對終端操作起來還是覺得不習慣,有一個叫做Dev Cpp的軟件也是個集成MinGW的IDE,大家可以自己去嘗試。

關于GCC編譯命令有哪些就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

gcc
AI

麻江县| 潼关县| 马鞍山市| 兴隆县| 南靖县| 托克逊县| 衡南县| 车致| 克什克腾旗| 吉水县| 赣榆县| 彩票| 长沙市| 齐齐哈尔市| 福泉市| 黑山县| 将乐县| 定西市| 安国市| 衡东县| 眉山市| 临西县| 县级市| 修文县| 平顺县| 万宁市| 香格里拉县| 梨树县| 抚远县| 句容市| 青冈县| 霸州市| 拉萨市| 衡阳县| 怀远县| 楚雄市| 屏边| 万全县| 深水埗区| 鄂托克前旗| 滁州市|