引言
為什么要在Linux下寫程序?
首先要問一下自己,為什么要寫這個程序。
如果我們寫一個運行在windows平台的應用程序,那么用Linux寫肯定是傻瓜或者強迫症,因為在windows平台調試windows程序可以更容易發現並解決問題,反過來也一樣,在Linux平台調試出來的程序可以更好的適應Linux平台的環境,如果在windows下寫出一個程序,結果到了Linux的運行環境出了暗病,那真是欲哭無淚,無從查起。
而很多時候,我們的程序都不是運行在windows平台的,例如嵌入式設備的內存容量十分有限,只能把Linux內核裁裁剪剪然后運行,所以嵌入式開發者一般都要求在Linux平台下工作。
正文
在windows下,我們寫C++程序一般會有如下幾個步驟:
- 編寫.cpp文件,代碼都在里面;
- 可能還有一些.h文件之類的支持文件,這些文件一般都會放在一起,或者相對位置是固定的;
- 編譯文件,鏈接文件,生成.exe文件
- 雙擊執行.exe文件(其實開發平台里的“運行”就是幫你雙擊了一下而已)
在Linux下這些步驟基本都是一樣的,不同的是,Linux最后生成的文件不是.exe,而是.out
步驟
- 首先得有個Linux操作系統,如果是新手(像我)最好選一個圖形界面做的好的,例如Ubuntu。一般這些操作系統都是免費開源的,這也是Linux的一大好處,可以直接修改一切文件,而windows的防御措施對於菜鳥和一般用戶很好用,但是對開發者而言就是個坑。
- 在Linux操作系統上新建一個文件夾,在里面放你的工程,如下圖
- 編寫代碼的部分就可以跳過了吧,例如我們都非常熟悉的hello world
-
接下來是編譯,打開終端,將終端路徑設置為你的工程目錄。cd 和ls命令真是好用。。。dir命令跟ls命令類似,看個人喜好吧,都一樣。
-
輸入命令 gcc test.cpp
-
誒→_→?為什么編譯不通過?當然不是程序寫錯了,而是 gcc 是 c 語言的編譯器,而我們寫的代碼是C++代碼,所以改為輸入 g++ test.cpp
-
沒有任何問題,這個時候我們可以看見工程目錄上多了一個a.out,它就是我們的“可執行文件”了。
-
可是為什么是 a.out 而不是 b.out 或者 nfsdnksd.out呢?這是默認的,沒有為什么→_→如果想給編譯出來的文件起一個名字,可以在編譯的時候用 -o 命令,例如 g++ test.cpp -o joyce
-
然后我們就可以看到,工程目錄多了一個joyce文件
-
執行文件的時候來的,在終端輸入 ./a.out 即可看到你的程序輸出。輸入 ./joyce 也是一樣的。記住不要漏了斜杠前面的點!!
-
這樣我們就完成了一個最基本的程序編譯和執行。