假设我们在目录project1
和project2
中有两个C项目,每个项目都有自己的include
目录。
project1/src
中的来源是否可以包含来自project2
的标头文件,如#include <project2/def.h>
def.h
中存在project2/include/def.h
?
感谢。
编辑:为了说清楚,让我们说你有这两个项目:
project1/
- Makefile
- include/def.h
- main.c
project2/
- Makefile
- include/def.h
- main.c
问题是,你可以project1/main.c
中):
#include <project2/def.h>
答案是否定的。
答案 0 :(得分:1)
从技术上讲,你不能 。
如果你真的想要:
#include <project2/def.h>
但有project2/include/def.h
,您有两种方法可以处理:
如果使用-Iproject2/include
进行编译,则创建一个子目录并将标题放在那里:
project2/include/project2/def.h
您将从project1包含为#include <project2/def.h>
。
或者,您可以创建包含project2/def.h
的标题#include project2/include/def.h
,然后调用-I.
,其中.
是project2
上方的目录源。
在我看来,更好的解决方案是第一个,因为它不依赖于知道你如何命名你的project2
来源目录(它可以在本地命名为foobar,你&#39;我仍然可以-I/path/to/foobar/include/
和`#include。