2015-11-12 46 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,包括递归 –

相关问题