2012-12-07 31 views
2

我可以使用g++ -Wall -c pa1.cpp -o pa1在OSX終端中運行編譯。這創建了pa1,所以我知道我的編譯在終端中工作,但我遇到了執行問題。我試過./pa1,./a.out,pa1和其他幾個。我相信問題在於Xcode,但是我的代碼將在終端中編譯並創建可執行文件,這一事實讓我無法確定。想過,在重新安裝Xcode之前,我會問這裏的建議。無法在終端OSX中執行文件

+2

的'-c'選項以防止連接器正在運行,所以輸出文件將是一個對象文件,而不是可執行文件。 – mipadi

回答

1

使用g++ pa1.cpp -o pa1然後你就可以運行你的新的可執行文件爲./pa1。這要求你的整個程序在pa1.cpp。如果它分佈在多個文件中,則必須在命令行中列出所有文件。

正如評論中所說,-c選項意味着編譯,即。創建一個可傳遞給鏈接器來構建可執行文件的對象文件。如果您不使用此選項,g++將首先編譯任何源文件,然後在所有對象文件上調用鏈接程序以創建名爲a.out的可執行文件(默認情況下爲name)。

你可以看到你的命令的輸出不是可執行的二進制文件,但通過使用file util的中間目標文件。

+0

我完全忘記了「如果它分散在多個文件中,則必須在命令行中列出所有這些文件。」非常感謝你! –