2015-11-12 50 views
3

我在一些文件夾中有許多源文件..有沒有一種方法可以一次編譯所有這些文件而無需命名它們?如何編譯目錄中的所有cpp文件?

我知道,我可以說

g++ -o out *.cpp 

但是當我嘗試

g++ -o out *.cpp folder/*.cpp 

我得到一個錯誤。

這樣做的正確方法是什麼?我知道使用makefiles是可能的,但可以直接使用g ++來完成嗎?

回答

4

通過指定folder/*.cpp您告訴g ++編譯folder中的cpp文件。那是對的。

你可能缺少的是告訴g ++在哪裏找到那些cpp文件#include的附加文件。

要做到這一點,告訴你的編譯器也include-I這樣的目錄:

g++ -o out -I ./folder *.cpp folder/*.cpp 

在某些情況下,我不得不編譯器忘記是在根/當前目錄,因此我手動指定它與其他-I到當前目錄.

g++ -o out -I . -I ./folder *.cpp folder/*.cpp 
+0

如果哪個文件夾有孩子的?它會自動包含子文件夾來編譯? – TomSawyer

+0

@TomSawyer不,此方法要求您手動指定單個目錄。對於遞歸的情況,shell腳本或Makefile適用於構建這些條目。相關主題:https://stackoverflow.com/questions/19738956/can-i-search-directory-and-subdirectories-for-header-files,https://stackoverflow.com/questions/510098/g-include-all -usr,包括遞歸 –

相關問題