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,包括递归 –