2008-10-21 49 views

回答

129

如果它是一個簡單的單源程序:

make foo 

源代碼文件是foo.c的或Foo.cpp中,等

你甚至需要一個makefile。 Make有足夠的內置規則將您的源文件構建成同名的可執行文件,減去擴展名。

運行剛剛構建的可執行文件與運行任何程序相同 - 但您通常需要指定可執行文件的路徑,因爲shell只會搜索$PATH中查找可執行文件的內容,而且大多數情況下包括當前目錄(.)。

所以運行生成的可執行foo

./foo 
8

假設當前目錄不在路徑,語法是./[name of the program]

例如./a.out

+2

對你有好處!點和斜槓在那裏,因爲在許多系統中,當前目錄(Unix中的「。」)不是由shell搜索的路徑的一部分。因此,添加它可以明確您要運行的程序。 – unwind 2008-10-21 08:49:24

+0

更好的一點。 – 2008-10-21 10:14:42

94
gcc main.cpp -o main.out 
./main.out 
+22

作爲一個noob我執行時沒有包含「./」這麼多的悲傷 – 2011-01-26 06:00:12

+1

@ funk-shun我希望你的評論是谷歌搜索這種事情時的最好結果 - 讓我永遠弄清楚(爲我的Mac ) - 謝謝! – 2012-03-24 04:20:30

+0

-bash:gcc:command not found – 2012-10-07 19:57:34

7

添加以下以獲得最佳的警告,你不會後悔。如果可以,編譯WISE(警告是錯誤)

- Wall -pedantic -Weffc++ -Werror 
2

使用makefile。即使對於非常小的(=單個文件)項目,這項工作也許是值得的,因爲您可以有多套編譯器設置來測試。這種調試和部署工作更容易。

閱讀make manual,乍一看似乎很長,但大部分部分可以略過。總而言之,我花了幾個小時,讓我的工作更有成效。

15

在Unix(在Linux,Mac OS     X,AIX等)環境中的所有應用程序的執行取決於執行搜索路徑上。

可以在終端與該命令顯示該路徑:

回波$ PATH

在Mac OS X(默認),這將顯示以下冒號分隔的搜索路徑:

在/ usr/bin中:/ bin中:/ usr/sbin目錄:/ sbin目錄:在/ usr/local/bin目錄:在/ usr/X11/bin中

因此,列出的目錄中的任何可執行文件都可以通過只輸入其名稱來運行。例如:

cat mytextfile。txt

這運行/bin/cat並顯示mytextfile.txt到終端。

要運行任何其他不在可執行文件搜索路徑中的命令,都要求您限定可執行文件的路徑。所以說,我只好叫MyProgram我的主目錄在Mac上的可執行文件  OS   XI可以完全限定像這樣:

/用戶/奧利弗/ MyProgram

如果你在某個位置在您希望執行的程序附近時,您可以使用部分路徑來限定名稱。例如,如果MyProgram在目錄/Users/oliver/MyProject我和我在我的主目錄,我可以有資格這樣的可執行文件的名稱,並將其執行:

MyProject的/ MyProgram

或者說我在該目錄/Users/oliver/MyProject2,我想執行/Users/oliver/MyProject/MyProgram我可以用這樣一個相對路徑,執行它:

../MyProject/MyProgram

同樣,如果我在與MyProgram相同的目錄中,我需要使用「當前目錄」相對路徑。您所在的當前目錄是後跟斜槓的句點字符。例如:

./MyProgram

要確定你是哪個目錄目前使用的pwd命令。

如果您通常將程序放在您希望運行的硬盤上,而不必限定其名稱。例如,如果您的主目錄中有一個「bin」目錄,用於其他程序的常用shell腳本,則更改可執行文件搜索路徑可能是明智的。

#!/bin/sh 
export PATH=$PATH:~/bin 

這裏的符號(〜)字符被用作一個快捷方式/用戶:

這可以通過創建或編輯現有.bash_profile文件在你的主目錄,並添加線條輕鬆做/奧利弗。另請注意,散列爆炸(#!)行必須是文件的第一行(如果它不存在)。還要注意,這種技術要求您的登錄shell是bash(Mac   OS   X和大多數Linux發行版的默認值)。還要注意的是,如果你想安裝在~/bin你的程序中優先於系統中的可執行文件中使用您應該重新安排出口聲明如下:

export PATH=~/bin:$PATH 
49

這是對所有Unix機器的工作原理命令我使用它在Linux/Ubuntu上,但它也適用於OS   X.在Terminal.app中鍵入以下命令。

$ g++ -o lab21 iterative.cpp 

-o是字母O不是零

lab21將是你的可執行文件

iterative.cpp是你的C++文件

在運行在終端運行下面​​這個命令式的程序:

$ ./lab21 
8

瑞安,我改變這是一個答案,而不是評論,因爲它似乎是我太簡要。在「終端」中完成所有這些。

要使用G ++編譯器,你需要這樣做:

  1. 導航到你保存的* .cpp文件的目錄。

    cd ~/programs/myprograms/
    (的〜是你的家,一個快捷鍵即/用戶/瑞安/程序/ myprograms /,與你實際使用的位置替換。)

  2. 編譯

    g++ input.cpp -o output.bin( output.bin可以任意擴展什麼的,真的。斌僅僅是通用於UNIX)

    ,應該沒有返回,如果它是成功的,那就是沒關係。通常你會在失敗時獲得回報。

    但是,如果您鍵入ls,您將看到相同目錄中的文件列表。例如,你會看到其他文件夾,input.cpp和output.bin

  3. 從目錄中,現在./outbut.bin

30

兩個步驟執行對我來說:

第一:

make foo 

則:

./foo 
7

一個緊湊的方式去這樣做,可能是:

make foo && ./$_ 

很高興有一個班輪所以你可以輕鬆地再次重新運行可執行文件。

-1

使用終端運行.C文件是一個兩步過程。 第一個步驟是在該終端輸入gcc和丟棄.C文件到終端,然後按回車

username$ gcc /Desktop/test.c 

在第二步驟中,運行下面的命令:

username$ ~/a.out