Compiling

Clang++ 編譯,但不執行

  • October 22, 2019

我嘗試通過鍵入來編譯程序(假設這裡我是 cd’d 進入目錄) clang++ file_name.cpp。它編譯並應該自動執行,但它沒有,只是結束事件,然後打開終端以供輸入。我在文件夾目錄中看到一個名為“a.out”的文件。如果我輸入 clang++ file_name.cpp,什麼也不會發生,我又回到了終端。如果我鍵入 clang++ a.out.cpp,編譯器會說它找不到文件,並且編譯器會關閉。我試圖查看是否正確安裝了clang,它是。我不知道怎麼了。

clang++只編譯原始碼的編譯器。在您的情況下,它會創建執行檔a.out(因為您沒有明確告訴它使用該-o選項使用其他輸出文件名)。編譯器不會自動執行生成的執行檔。這些事情也適用於g++(GNU C++ 編譯器)以及CclanggccC 編譯器(以及大多數其他需要編譯的語言的編譯器)。

要執行執行檔,請發出命令

./a.out

在 shell 的命令提示符下。

要為執行檔指定一個不同於傳統預設名稱的名稱a.out,請使用類似

clang++ -o myprog file_name.cpp

從. myprog_file_name.cpp


給定單個文件中的原始碼file_name.cppmake也可以file_name使用以下命令將原始碼編譯成執行檔

make file_name

而在與原始碼文件相同的目錄中(但前提是原始碼自file_name上次編譯後已更新)。這要求 noMakefile存在,而是使用內置的隱式規則make來編譯 C++ 原始碼。

採用

CXX=clang++ make file_name

顯式使用clang++編譯器。

有關這方面的更多資訊,請參閱有關隱式規則make的 GNU文件(其他實現,例如在 BSD 系統上,使用類似的隱式規則)。make

引用自:https://unix.stackexchange.com/questions/548122