首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >我如何告诉cmake我想让我的项目静态链接库?

我如何告诉cmake我想让我的项目静态链接库?
EN

Stack Overflow用户
提问于 2010-09-20 21:02:07
回答 7查看 39.1K关注 0票数 25

我正在尝试使用CMake构建一个基于OpenCV的项目,在Linux上运行。到目前为止,我的CMakeLists.txt文件看起来像这样

代码语言:javascript
运行
AI代码解释
复制
FIND_PACKAGE (OpenCV REQUIRED)
...
TARGET_LINK_LIBRARIES (my-executable ${OpenCV_LIBS})

但这会导致动态链接库。如何链接到静态库?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-05-22 20:10:12

只需在CMake中将BUILD_SHARED_LIBS标志设置为false,即可构建静态OpenCV库。然后,使用这些静态库构建自己的应用程序所需做的就是在CMakeLists.txt中添加对OpenCV的依赖

代码语言:javascript
运行
AI代码解释
复制
FIND_PACKAGE (OpenCV REQUIRED)
...
TARGET_LINK_LIBRARIES (your-application ${OpenCV_LIBS})

CMake会处理好一切的。

票数 11
EN

Stack Overflow用户

发布于 2014-11-13 23:40:22

实际上,这个问题似乎已经在OpenCV附带的OpenCVConfig.cmake中得到了解决。您所要做的就是在CMakeLists.txt中定义OpenCV_STATIC。也就是说。

代码语言:javascript
运行
AI代码解释
复制
set(OpenCV_STATIC ON)
find_package(OpenCV REQUIRED)
票数 11
EN

Stack Overflow用户

发布于 2010-09-20 21:37:12

要静态链接所有内容,我相信您正在寻找CMAKE_EXE_LINKER_FLAGS (添加-static)。

你使用的是OpenCVConfig.cmake的“简单方法”吗?或者是更老的FindOpenCV.cmake?

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3755482

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文