我正在开发一个软件,它包含一些带有python绑定的核心C代码. C代码已经使用了很多OpenCV,但现在我正在尝试将图像保存在两者之间,我似乎无法使用imwrite函数.在main.cpp中添加它并使用’Default’构建在eclipse中编译,但是为了将它与现有的Python代码一起使用,我需要使用CMake构建.这再次编译很好,但是当我从Python类调用代码时,我收到此错误:
ImportError: /.../pythonCPP.so: undefined symbol: _ZN2cv7imwriteERKNS_6StringERKNS_11_InputArrayERKSt6vectorIiSaIiEE
我搜索了这个,从我可以收集的内容来看,这通常似乎源于某种链接问题.我不知道从哪里开始查找或添加CMake文件中的任何标志.我在Ubuntu 16.04 64bit上使用OpenCV 3.2.0.
这是相应的CMakeLists.txt:
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
project("blah")
#----------------------------CMAKE & GLOBAL PROPERTIES-------------------------#
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
###============= C++11 support====================================
include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
if (COMPILER_SUPPORTS_CXX11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -g0 -s -std=c++11")<