我正在尝试使用CMake构建一个基于OpenCV的项目,在Linux上运行。到目前为止,我的CMakeLists.txt
文件看起来像这样
FIND_PACKAGE (OpenCV REQUIRED)
...
TARGET_LINK_LIBRARIES (my-executable ${OpenCV_LIBS})
但这会导致动态链接库。如何链接到静态库?
发布于 2012-05-22 20:10:12
只需在CMake中将BUILD_SHARED_LIBS
标志设置为false,即可构建静态OpenCV库。然后,使用这些静态库构建自己的应用程序所需做的就是在CMakeLists.txt
中添加对OpenCV的依赖
FIND_PACKAGE (OpenCV REQUIRED)
...
TARGET_LINK_LIBRARIES (your-application ${OpenCV_LIBS})
CMake会处理好一切的。
发布于 2014-11-13 23:40:22
实际上,这个问题似乎已经在OpenCV附带的OpenCVConfig.cmake
中得到了解决。您所要做的就是在CMakeLists.txt
中定义OpenCV_STATIC
。也就是说。
set(OpenCV_STATIC ON)
find_package(OpenCV REQUIRED)
发布于 2010-09-20 21:37:12
要静态链接所有内容,我相信您正在寻找CMAKE_EXE_LINKER_FLAGS
(添加-static
)。
你使用的是OpenCVConfig.cmake的“简单方法”吗?或者是更老的FindOpenCV.cmake?
https://stackoverflow.com/questions/3755482
复制相似问题