我的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})
答案 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链接)。