如何在没有许多 -I 标志的情况下在 g++ 中包含多个头目录?
How to include multiple header directories in g++ without many -I flags?
我的 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++ 递归地找到文件。
有人知道我能不能做到吗?也许使用 g++
...
的 makefile 或一些特殊标志
您只需将“-Iinclude”添加到 g++ 并包含 headers 如下
#include <foo/foo_header1.h>
#include <bar/bar_header2.h>
这也消除了在 header 文件名中使用 foo/bar 前缀的需要。重命名后,上面简化为如下
#include <foo/header1.h>
#include <bar/header2.h>
我的 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++ 递归地找到文件。
有人知道我能不能做到吗?也许使用 g++
...
您只需将“-Iinclude”添加到 g++ 并包含 headers 如下
#include <foo/foo_header1.h>
#include <bar/bar_header2.h>
这也消除了在 header 文件名中使用 foo/bar 前缀的需要。重命名后,上面简化为如下
#include <foo/header1.h>
#include <bar/header2.h>