如何在 #include 的标头名称之前具有库名称
How to have library name preceding header name on a #include?
本文关键字:#include 更新时间:2023-10-16
我正在使用cmake编译具有以下结构的项目:
根
- 利巴
-
- 公司
-
- 来源
- LibB
-
- 公司
-
- 来源
- 主.cpp
我在每个 LibX、每个 src 和根文件夹上都有 CMakeList。
我的项目正在按预期编译和工作。但我想将标题包括为:包括"{LibX}/{header}.h",而不仅仅是"{header}.h",或者不要将绝对/相对路径放在标题中。
由于我在 CMakeList 中设置了所有包含目录,因此我可以简单地包含一个带有其名称的标头,但这并不是真正的最佳解决方案。
例如,我的main.cpp依赖于LibA和LibB,而LibA依赖于LibB,这是一个数学库。最好知道我每次都从哪个库包含一个标题。
谢谢
Root/LibA/inc/
LibA
/MyHeaderFileFromA.h
#include <LibA/MyHeaderFileFromA.h>
给你
将评论提升为答案,以便其他人更容易找到:
#include
需要匹配路径。您可以在 Root
下创建一个额外的文件夹,称为 includes
,其中包含指向LibA/inc
(调用链接LibA
)和LibB/inc
(调用链接LibB
)的软(或硬)链接。然后将Root/includes
设置为搜索头文件的路径之一。
根
- 利巴
- 公司
- 来源
- LibB
- 公司
- 来源
- 包括
- LibA
- (链接到 Root/LibA/inc) LibB
- (链接到 Root/LibB/inc)
- 主.cpp
相关文章:
- 既然存在危险,为什么项目要使用-I include开关
- 有充分的理由在h文件中使用include保护而不是cpp文件吗
- 如何将更多文件夹添加到c++include路径
- 什么是"#include <boost/functional/hash.hpp> "?
- 对于MacOS上的G++,如何添加默认的include目录/usr/local/include和默认的库搜索路径/usr
- C++包含来自 #include "DevEngine/Core.h" 的错误
- <filesystem> 在 clang 6 和 10 上 #include 错误
- 在 void 函数中使用 #include 变量C++
- N-API include an .so or dll
- 允许哪些令牌作为 #include 的参数?
- GCC 包含标头(使用"-include")CMake 未检测到的更改
- WebAssembly include OpenCV
- 如何在 c++ 中正确指定 #include 路径以使程序可移植
- 修改生成文件以简化框架 #include 路径
- VS2015/VC++ 在新类模板中禁用默认 #include "stdafx.h"
- macOS 致命错误:sys/_types/_int8_t.h:没有此类文件或目录 #include < sys/_types/_int8_t.h>
- #include < conio.h> 和 getch() 方法之间的关系是什么?
- 如何将构建的C++库安装到 /usr/include?
- /usr/include/c++/7/cstdlib:75:15:致命错误:stdlib.h:没有这样的文件或目录 #i
- 解释通过 lex/flex 实现 C/C++嵌套的"#include "Header""语法?