c++ - 如何在我的 makefile 中包含目录及其所有子目录的 header ?

标签 c++ linux makefile

我的项目组织如下:

  • 生成文件
  • 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/

相关文章:

c++ - QSqlTableModel 过滤器没有结果

c++ - 如何使用 Qt 将参数从 QML View 发送到模型?

linux - 让 cron 作业每 30 分钟运行一次 - 使用 cron.hourly?

linux - 嵌入式linux中的脚本

linux - 为什么我编译的bash(3.8M)比我的系统提供的bash(937K)大?

MySql使用Makefile创建数据库

c++ - 顶点位置/法线/坐标无法正确渲染

c++ - STL迭代器进入构造函数

linux - 如何使用linux从子文件中读取数据并将其 append 到父文件的末尾

c++ - 使用 g++、make、cmakelists 在 linux openSUSE 上编译 googletest 程序