在Linux系統(tǒng)下如何編譯并執(zhí)行C++程序
引言
為什么要在Linux下寫(xiě)程序?
首先要問(wèn)一下自己,為什么要寫(xiě)這個(gè)程序。
如果我們寫(xiě)一個(gè)運(yùn)行在windows平臺(tái)的應(yīng)用程序,那么用Linux寫(xiě)肯定是傻瓜或者強(qiáng)迫癥,因?yàn)樵趙indows平臺(tái)調(diào)試windows程序可以更容易發(fā)現(xiàn)并解決問(wèn)題,反過(guò)來(lái)也一樣,在Linux平臺(tái)調(diào)試出來(lái)的程序可以更好的適應(yīng)Linux平臺(tái)的環(huán)境,如果在windows下寫(xiě)出一個(gè)程序,結(jié)果到了Linux的運(yùn)行環(huán)境出了暗病,那真是欲哭無(wú)淚,無(wú)從查起。
而很多時(shí)候,我們的程序都不是運(yùn)行在windows平臺(tái)的,例如嵌入式設(shè)備的內(nèi)存容量十分有限,只能把Linux內(nèi)核裁裁剪剪然后運(yùn)行,所以嵌入式開(kāi)發(fā)者一般都要求在Linux平臺(tái)下工作。
正文
在windows下,我們寫(xiě)C++程序一般會(huì)有如下幾個(gè)步驟:
- 編寫(xiě).cpp文件,代碼都在里面;
- 可能還有一些.h文件之類(lèi)的支持文件,這些文件一般都會(huì)放在一起,或者相對(duì)位置是固定的;
- 編譯文件,鏈接文件,生成.exe文件
- 雙擊執(zhí)行.exe文件(其實(shí)開(kāi)發(fā)平臺(tái)里的“運(yùn)行”就是幫你雙擊了一下而已)
在Linux下這些步驟基本都是一樣的,不同的是,Linux最后生成的文件不是.exe,而是.out
步驟
首先得有個(gè)Linux操作系統(tǒng),如果是新手(像我)最好選一個(gè)圖形界面做的好的,例如Ubuntu。一般這些操作系統(tǒng)都是免費(fèi)開(kāi)源的,這也是Linux的一大好處,可以直接修改一切文件,而windows的防御措施對(duì)于菜鳥(niǎo)和一般用戶(hù)很好用,但是對(duì)開(kāi)發(fā)者而言就是個(gè)坑。
在Linux操作系統(tǒng)上新建一個(gè)文件夾,在里面放你的工程
如下圖:
編寫(xiě)代碼的部分就可以跳過(guò)了吧,例如我們都非常熟悉的hello world
接下來(lái)是編譯,打開(kāi)終端,將終端路徑設(shè)置為你的工程目錄。cd 和ls命令真是好用。。。dir命令跟ls命令類(lèi)似,看個(gè)人喜好吧,都一樣。
輸入命令 gcc test.cpp
誒→_→?為什么編譯不通過(guò)?當(dāng)然不是程序?qū)戝e(cuò)了,而是 gcc 是 c 語(yǔ)言的編譯器,而我們寫(xiě)的代碼是C++代碼,所以改為輸入 g++ test.cpp
沒(méi)有任何問(wèn)題,這個(gè)時(shí)候我們可以看見(jiàn)工程目錄上多了一個(gè)a.out,它就是我們的“可執(zhí)行文件”了。
可是為什么是 a.out 而不是 b.out 或者 nfsdnksd.out呢?這是默認(rèn)的,沒(méi)有為什么→_→如果想給編譯出來(lái)的文件起一個(gè)名字,可以在編譯的時(shí)候用 -o 命令,例如 g++ test.cpp -o joyce
然后我們就可以看到,工程目錄多了一個(gè)joyce文件
執(zhí)行文件的時(shí)候來(lái)的,在終端輸入 ./a.out 即可看到你的程序輸出。輸入 ./joyce 也是一樣的。記住不要漏了斜杠前面的點(diǎn)?。?/p>
這樣我們就完成了一個(gè)最基本的程序編譯和執(zhí)行。
總結(jié)
具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
相關(guān)文章
安裝ubuntu18.04報(bào):failed to load ldlinux.c32的問(wèn)題及解決步驟
這篇文章主要介紹了安裝ubuntu18.04報(bào):failed to load ldlinux.c32的問(wèn)題,本文通過(guò)圖文并茂的形式給大家分享解決方法,需要的朋友可以參考下2020-08-08CentOS 6.5 web服務(wù)器apache的安裝與基本設(shè)置
這篇文章主要介紹了CentOS 6.5 web服務(wù)器apache的安裝與基本設(shè)置,需要的朋友可以參考下2017-09-09免費(fèi)常用Linux VPS管理面板/一鍵包介紹和安裝方法
這篇文章主要介紹了常用免費(fèi)Linux VPS管理面板/一鍵包介紹和安裝方法,需要的朋友可以參考下2017-02-02Linux下二進(jìn)制編譯安裝MySql centos7的教程
這篇文章主要介紹了Linux下二進(jìn)制編譯安裝MySql centos7的教程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09