我的项目组织如下:
- 生成文件
- build
- 对象
- 应用
- 包括
- 子目录(包含*.h)
- 子目录(包含*.h)
- 来源
- 子目录(包含*.cpp)
- 子目录(包含*.cpp)
在我的 makefile 中,从我当前使用的子目录中获取所有 *.h:
#includes (.h / .hpp)
INC_DIRS := \
$(wildcard include/*/)
INCLUDE = $(foreach d, $(INC_DIRS), -I$d)
这确实有效,而且我能够很好地编译。不过,我想知道是否有一种更简单的方法可以将所有子目录包含在一个 include 语句中。
我正在使用的当前方法为每个子目录执行“-Iinclude/subdirectory”,它在终端中看起来非常困惑和困惑。
最佳答案
鉴于您的包含路径方法,这是在您的 makefile 中指定它的好方法。
但是,最好不要求所有这些子目录都在路径中,而是在代码中使用相对路径。
#include "somedir/thing.h"
#include "somedir2/otherthing.h"
等等。
如果需要,这也将更容易移植到其他构建系统。
关于c++ - 如何在我的 makefile 中包含目录及其所有子目录的 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57422227/