我有一个项目(一个库),分成几个目录,目录中都有代码。我希望g++能够在项目的根目录中搜索头文件,这样我就可以避免在多个源文件中为相同的头文件使用不同的包含路径。
主要是,root/
目录下有子目录A/
、B/
和C/
,它们都有.hpp
和.cpp
文件。如果A中的某个源文件想要包含B中的file.hpp
,它必须这样做:#include "../B/file.hpp"
。C中的另一个源文件也是如此。但是,如果A本身有子目录,其中的文件需要file.hpp
,那么它将是不一致的,如果我决定移动文件,将会导致错误(因为包含路径将是"../../B/file.hpp"
)。
此外,这也需要在其他项目中工作,这些项目不在root/
之内。我已经知道手动将所有头文件复制到默认搜索目录的选项,但我想以我描述的方式做。
编辑:所有使用该库的程序必须仅使用g++ prog.cpp lib.a -o prog
进行编译。这意味着必须永久性地设置g++的包含路径!
#include "../include/header.h"
的好处是什么?。 - Jonathan Leffler