gpt4 book ai didi

C:#include 中的前缀

转载 作者:行者123 更新时间:2023-11-30 19:09:11 25 4
gpt4 key购买 nike

假设目录 project1 中有两个 C 项目和project2 ,每个人都有自己的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

问题是,您能否在项目1中引用项目2的 header (例如在 project1/main.c 中):

#include <project2/def.h>

答案是否定的。

最佳答案

从技术上讲,不,你不能按原样

如果你真的想要:

#include <project2/def.h>

但是有project2/include/def.h ,你有两种方法来处理这个问题:

如果使用 -Iproject2/include 进行编译,然后创建一个子目录并将标题放在那里:

project2/include/project2/def.h

您将从project1 中将其包含为 #include <project2/def.h> .

或者,您可以创建 header project2/def.h将包含 #include project2/include/def.h你会打电话-I.哪里.就是上面的目录project2来源。

以我的拙见,更好的解决方案是第一个,因为它不依赖于知道您如何命名 project2源目录(它可以在本地命名为 foobar ,您仍然可以 -I/path/to/foobar/include/ 和 `#include 。

关于C:#include 中的前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43610590/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com