在我的CMake项目中使用静态构建而不是OpenCV的共享构建

时间:2014-11-28 11:32:51

标签: c++ opencv cmake

我的CMake项目使用OpenCV,但它链接到共享版本,这需要OpenCV DLL才能使我的可执行文件正常工作。如何告诉CMake使用OpenCV的静态版本?

我的CMakeList.txt文件应该更改什么?这就是它现在的样子:

cmake_minimum_required(VERSION 2.8)
project (Tutorial)
find_package (OpenCV REQUIRED)
add_executable (Tutorial WIN32 main.cpp)
target_link_libraries (Tutorial ${OpenCV_LIBS})

1 个答案:

答案 0 :(得分:1)

我从https://stackoverflow.com/a/26920527/492336找到答案:

  

实际上这个问题似乎已经在OpenCV附带的OpenCVConfig.cmake中得到修复。您所要做的就是在CMakeLists.txt中定义OpenCV_STATIC。即。

set(OpenCV_STATIC ON)
find_package(OpenCV REQUIRED)

这对我有用,虽然我需要将CRT指定为静态(因为静态OpenCV与静态CRT链接)。