Ubuntu下编译并运行C++代码
安裝完Ubuntu后,(用戶目錄有時候也叫 home 文件夾或者主文件夾,它的路徑是/home/username,其中 username 就是我們登錄 Linux 時使用的用戶名。Linux 會在 home 目錄下為每一個登錄的用戶創建一個文件夾,專門用來存放該用戶使用到的配置文件、文本文檔、圖片、可執行程序等,以和其他用戶區分開來。)就是一系列的輸入命令:
1.首先輸入命令pwd查看你所在的目錄。pwd命令:查看當前路徑。
2.輸入命令ls查看在該目錄下的所有目錄。
3.輸入命令cd 命令:切換當前目錄至其他目錄 .(cd 要進入的目錄名)進入該目錄下,(cd ..)返回上層目錄,
cd /:加上斜杠表示是進入到根目錄。
(1)cd 進入用戶主目錄
(2)cd ~ 進入用戶主目錄
(3)cd - 返回進入此目錄之前所在目錄
(4)cd .. 返回上一級目錄
(5)cd ../..返回上兩級目錄
(6)cd !$ 把上個命令的參數作為cd 參數使用
4.進入目錄后,輸入命令 (mkdir 文件名)表示在該目錄下創建新的文件
mkdir命令用來創建指定的目錄的名稱,要求創建的暈乎在當前目錄中具有權限,并且創建的目錄不能是當前目錄中已有的。
mkdir [選項] [目錄]
選項格式:
-m --mode=模式,建立目錄的時候同時設置目錄的權限;
-p --parents若所建立的上層目錄不存在,并建立該目錄。即確保目錄名稱存在,不存在的就建一個。
-v --verbose 每次創建新目錄都顯示信息
-h --help 幫助信息
例如:
創建一個空的目錄hello
mkdir hello
遞歸創建多個目錄
mkdir -p hello/word
創建權限為111的目錄
mkdir -m 111 test
當前目錄下創建test/test1,權限為111
mkdir -p-m 111 test/test1
5.mkdir hello后,輸入命令cd hello進入該文件夾,現在就是建立可執行的C/C++文件啦,輸入命令:touch+filename.c/filename.cpp,touch是建立文件的命令,.c/.cpp的后綴表示文件的類型。這里建立一個文件名為Hello.c的c文件;
A.使用Gedit編輯器(Gedit 是一款簡單實用的文本編輯器,界面優雅,支持語法高亮,比 Vim 容易上手,它和 Windows 下的編輯器沒有什么兩樣)
(如果你使用的是其它的 Linux 發行版,可能沒有默認安裝 Gedit,這個時候就得自己安裝,具體步驟為:
$ sudo apt-add-repository ppa:ubuntu-on-rails/ppa? ? #添加ubuntu的軟件源
$ sudo apt-get update? ? #更新軟件列表
$ sudo apt-get install gedit-gmate? ? #安裝)
?
($ cd hello? #進入 hello 目錄,這是源文件所在的目錄
$ touch hello.c? #使用 touch 命令創建一個名為 hello.c 的空文件
$ gedit hello.c? #使用 gedit 命令編輯 hello.c)這樣就完成了源文件的創建,并能夠使用 Gedit 編輯源文件了,(Ctrl+S保存文件,就完成了源代碼的編輯工作。此時需要關閉 Gedit 的窗口,$ gedit main.c關閉完窗口后這條命令才算執行結束,才能在控制臺繼續輸入其它命令)。
B.使用GCC編譯器(使用 GCC 來編譯C語言程序)GCC 僅僅是一個編譯器,沒有界面,必須在命令行模式下使用。通過gcc命令就可以將源文件編譯成可執行文件
6.文件建立好后就是雙擊文件用Linux系統自帶的Vim文本編輯器來寫代碼啦;
保存好c文件后接下來就是編譯成可執行文件,輸入命令:gcc Hello.c -o hello,gcc是編譯c文件的命令,若是.cpp文件則用g++,-o后面的hello就是可執行的文件名(可隨意起一個filename);
注意:如果沒有在Hello.c文件中正確輸入代碼,或者完全沒有輸入任何東西是編譯失敗的。
最后,就是執行啦,輸入命令:./hello,“./”是運行可執行文件的命令;
擴展:
(1)$ gcc hello.c? #在 gcc 命令后面緊跟源文件名
打開 hello.cpp 目錄(是個文件夾),會看到多了一個名為 hello.out 的文件,這就是最終生成的可執行文件。
這樣就一次性完成了編譯和鏈接的全部過程,非常方便。Linux 不以文件后綴來區分可執行文件,Linux 下的可執行文件后綴理論上可以是任意的, 這里的.out只是用來表明它是 GCC 的輸出文件,不管源文件的名字是什么,GCC 生成的可執行文件的默認名字始終是a.out
(2)如果不想使用默認的文件名,那么可以通過-o選項來自定義文件名,例如:$ gcc hello.c -o hello.out? (這樣生成的可執行程序的名字就是main.out。)
(3)因為 Linux 下可執行文件的后綴僅僅是一種形式上的,所以可執行文件也可以不帶后綴,例如: $ gcc hello.c -o hello ? (這樣生成的可執行程序的名字就是main)
(4)通過-o選項也可以將可執行文件輸出到其他目錄,并不一定非得在當前目錄下,例如: $ gcc hello.c -o ./out/hello.out ?? 或者?$ gcc hello.c -o out/hello.out
表示將可執行文件輸出到當前目錄下的out目錄,并命名為hello.out。./表示當前目錄,如果不寫,默認也是當前目錄。 (注意:out 目錄必須存在,如果不存在,gcc 命令不會自動創建,而是拋出一個錯誤。)
?
C.運行可執行程序
7.上面我們生成了可執行程序,要運行他,只用在控制臺中輸入程序的名字就可以,如下所示:
$ ./hello.out ? ? ?? 即 ? $ ./a.out ?
./表示當前目錄,整條命令的意思是運行當前目錄下的 a.out 程序。如果不寫./,Linux 會到系統路徑下查找 a.out,而系統路徑下顯然不存在這個程序,所以會運行失敗。
所謂系統路徑,就是環境變量指定的路徑,我們可以通過修改環境變量添加自己的路徑,或者刪除某個路徑。很多時候,一條Linux命令對應一個可執行程序,如果執行命令時沒有指明路徑,那么就會到系統路徑下查找對應的程序。
輸入完上面的命令,按下回車鍵,程序就開始執行了,它會將輸出結果直接顯示在控制臺上,
如果程序在其它目錄下,運行程序時還要帶上目錄的名字,例如:
$ ./out/hello.out ? 或者 ?$ out/main.out
這個時候加不加./都一樣,Linux 能夠識別出out是一個目錄,而不是一個命令,它默認會在當前路徑下查找該目錄,而不是去系統路徑下查找,所以不加./也不會出錯。
注意,如果程序沒有執行權限,可以使用sudo命令來增加權限,例如:
$ sudo chmod 777 a.out
完整步驟:
$ cd hello.cpp? #進入源文件所在目錄
$ touch hello.c? #新建空白的源文件
$ gedit hello.c? #編輯源文件
$ gcc hello.c? #生成可執行程序
$ ./hello.out? #運行可執行程序
?? hello?
$? ?#繼續輸入其它命令
?
?
?
?
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的Ubuntu下编译并运行C++代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决ros安装 使用roscore命令测
- 下一篇: 1.Socket通信