【发布时间】:2020-08-06 14:47:41
【问题描述】:
我无法让 gcc 编译器识别“包含”中的复杂路径。
这是我的玩具“main.cpp”文件(注意包含语句中的子目录):
#include "sub/testlib.h"
int main()
{
testlib(6);
return 0;
}
以下是“main.cpp”文件夹中“testlib.h”文件的路径:../lib/sub/testlib.h。
我在编译时指定了包含目录:
gcc -c -iquote../lib main.cpp
编译器对我大喊:
main.cpp:1:10: fatal error: sub/testlib.h: No such file or directory
1 | #include "sub/testlib.h"
| ^~~~~~~~~~~~~~~
compilation terminated.
当然,我可以通过从路径中删除子目录来编译它。但这只是我在编译实际项目失败后所做的一个实验。我不能随意更改那里的文件。
如何强制 gcc 很好地处理包含中的子目录?我在这里缺少标志或某些选项吗?
【问题讨论】:
-
你可以试试加
-I/sub -
请edit 显示每个文件的绝对路径。什么是
-iquote../lib -
@NutCracker,我做到了,但问题仍然存在......
-
@Jabberwocky,我真傻。正如你所建议的,我开始编辑,发现路径不是我想象的那样。我改变了路径,然后它就像一个魅力!感谢您为我节省了数小时的错误猜测和尝试!
标签: c++ gcc compiler-errors include-path