我正在尝试从cmake创建静态* .a lib。但它没有将opencv libs链接到静态库,因为我得到错误未知引用cv:Mat .....等。 我改变了add_library(Helper SHARED Helper.cpp Helper.h)的那一刻,它正确地编译了共享库。 任何人都可以告诉我问题和解决方案。
-----------------------Cmake File---------------------------------
cmake_minimum_required(VERSION 2.8)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
find_package(OpenCV REQUIRED)
add_library(Helper STATIC Helper.cpp Helper.h)
target_link_libraries(Helper ${OpenCV_LIBS})
答案 0 :(得分:0)
尝试在cmake文件中添加此配置
set(OpenCV_STATIC ON)
答案 1 :(得分:0)
我理解以下问题-您有一个要编译的项目,其输出是静态库。它与OpenCV的静态库链接。预期的输出是一个包含单个静态库的库,该库具有OpenCV所需的所有功能。
使用Cmake时,添加以下标志:
target_link_libraries(your_target_name -static)
这将使GCC / Clang输出单个静态库。
我不确定如何在Windows中实现这一目标。
我不认为他只打算使用OpenCV的静态库,但他希望项目的输出(这是一个静态库)包括所有需要的OpenCV静态库。