【发布时间】:2021-11-17 23:01:44
【问题描述】:
我的include 文件夹下有一个包含多个子文件夹的项目。例如:
include/
|-- foo/
|-- foo_header1.h
\-- foo_header2.h
|-- bar/
|-- bar_header1.h
\-- bar_header2.h
|-- root_header1.h
\-- root_header2.h
src/
|-- foo/
|-- foo_source1.cpp
\-- foo_source2.cpp
|-- bar/
|-- bar_source1.cpp
\-- bar_source2.cpp
|-- root_source1.cpp
|-- root_source2.cpp
\-- main.cpp
目前我的Makefile 是:
all:
g++ -Iinclude/ -Iinclude/foo -Iinclude/bar -o main src/*.cpp src/foo/*.cpp src/bar/*.cpp
我想要一种使该命令“更智能”的方法,因此我不会硬编码源代码中的所有文件夹并包含目录(我的项目可能会有很多文件夹)。我只是想要一些方法来指定根头目录并让 g++ 递归查找文件。
有人知道我能不能做到吗?也许使用makefile或g++的一些特殊标志...
【问题讨论】:
-
常见的方法是defining a variable to store the include directories。或者,您可以考虑使用更高级别的构建系统,例如 CMake,它可以让您更以编程方式指定项目结构。