3
我在一些文件夾中有許多源文件..有沒有一種方法可以一次編譯所有這些文件而無需命名它們?如何編譯目錄中的所有cpp文件?
我知道,我可以說
g++ -o out *.cpp
但是當我嘗試
g++ -o out *.cpp folder/*.cpp
我得到一個錯誤。
這樣做的正確方法是什麼?我知道使用makefiles是可能的,但可以直接使用g ++來完成嗎?
我在一些文件夾中有許多源文件..有沒有一種方法可以一次編譯所有這些文件而無需命名它們?如何編譯目錄中的所有cpp文件?
我知道,我可以說
g++ -o out *.cpp
但是當我嘗試
g++ -o out *.cpp folder/*.cpp
我得到一個錯誤。
這樣做的正確方法是什麼?我知道使用makefiles是可能的,但可以直接使用g ++來完成嗎?
通過指定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
如果哪個文件夾有孩子的?它會自動包含子文件夾來編譯? – TomSawyer
@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,包括遞歸 –