【发布时间】:2013-07-04 16:58:52
【问题描述】:
/src/dir1/ 中存在一些头文件(例如:a.h、b.h、c.h 等)。我的源文件存在于/src/dir2/file.cpp。我使用了/src/dir1/ 中存在的一些头文件,但在编译过程中出现header file not found 之类的错误。
然后我更改了 #include "../src/dir1/a.h" 之类的包含路径,然后 file.cpp 中的错误消失了,但在 /src/dir1 中存在的头文件中出现 not found 错误。因为我包含了头文件,比如a.h,所以a.h 包含了/src/dir1/ 中存在的一些其他头文件(比如b.h 和c.h 存在于a.h)。
如何在/src/dir2/file.cpp 中添加头文件(a.h),使其不要求修改/src/dir1/ 中存在的头文件中的包含路径?
注意:我使用scons 构建。
【问题讨论】:
-
您需要
"include "../dir1/a.h"或#include "../..src/dir1/a.h"才能找到该文件。但是在包含路径中嵌入..是一个坏主意(就像使用绝对路径名一样)。编译时使用#include "a.h"或#include "dir1/a.h"和适当的-I命令行选项。