首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在CMake中添加第三方静态库+头文件

在CMake中添加第三方静态库+头文件
EN

Stack Overflow用户
提问于 2021-09-29 07:10:04
回答 1查看 65关注 0票数 0

我有一个第三方静态库,我想要添加到一个项目中,并且由于该库正在进行更新,我希望坚持在根目录中使用单个CMakeLists.txt (如果可能)-或者至少在每次更新该库时都需要最少的自定义设置。

假设我的文件结构是这样的:

代码语言:javascript
运行
复制
├── include
│   └── my_api
│       ├── some
│       │   └── long
│       │       └── path
│       │           └── include
│       │               ├── header1.h
│       │               └── header2.h
│       └── other
│           └── very
│               └── long
│                   └── path
│                       └── include
│                           ├── header3.h
│                           └── header4.h
├── lib
│   └── libmy_api.a
├── CMakeLists.txt
└── main.cpp

我遵循了无数的教程,但是当我在main.cpp中包含其中一个头文件时,CMake或Make都不能构建,或者我得到了“没有这样的文件或目录”。

我绝不是一个CMake超级用户,我甚至不确定在根目录中只有一个CMakeLists.txt来处理所有事情是否可能,或者这是否是一个好的实践。

更复杂的是,header1.h依赖于header3.h,使用以下路径:

代码语言:javascript
运行
复制
#include "other/very/long/path/include/header3.h"

感谢所有的帮助--谢谢!

EN

Stack Overflow用户

发布于 2021-09-29 07:26:54

包含目录由include_directories(...)target_include_directories(...)命令添加。您需要将路径添加到包含您在标头中使用的相对路径的include目录。

您可以使用类似于add_library(name STATIC IMPORTED)的命令添加库。然后通过set_target_properties(name PROPERTIES IMPORTED LOCATION some/path/lib.a)添加位置。然后,您可以像往常一样将其链接到您的目标。

供参考:

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69371876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档