我的环境:
我的问题:
我有一个使用Opencv并在vs11下构建的vs11项目。所有东西都适用于预构建的二进制文件(在我的例子中,来自c:/opencv/build )。我想改变一些Opencv设置,所以我不得不从源代码构建它(在c:/opencv/ build 2中)。c:/opencv/built2 2中的所有内容都是正确建造和安装,但我的IDE中有这个错误:
错误'C:\opencv\build2\lib\Debug\Debug\opencv_objdetect244d.lib‘:无法打开文件LNK1104
事实上,没有这样的档案。我的CMakeLists.txt脚本似乎通过在每个调用中添加一个Debug\ (或Release)子目录来破坏OpenCV_LIBS变量:
MESSAGE ( STATUS "OpenCV_LIBS = ${OpenCV_LIBS}" )
FIND_PACKAGE ( OpenCV COMPONENTS core highgui imgproc objdetect REQUIRED )
MESSAGE ( STATUS "OpenCV_LIBS = ${OpenCV_LIBS}" )
FIND_PACKAGE ( OpenCV COMPONENTS core highgui imgproc objdetect REQUIRED )
MESSAGE ( STATUS "OpenCV_LIBS = ${OpenCV_LIBS}" )
FIND_PACKAGE ( OpenCV COMPONENTS core highgui imgproc objdetect REQUIRED )
MESSAGE ( STATUS "OpenCV_LIBS = ${OpenCV_LIBS}" )产出:
debug;C:/opencv/build2/lib/Debug/opencv_contrib244d.lib;(...) = OpenCV_LIBS debug;C:/opencv/build2/lib/Debug/Debug/opencv_objdetect244d.lib;(...) = OpenCV_LIBS debug;C:/opencv/build2/lib/Debug/Debug/Debug/opencv_objdetect244d.lib;(...) = OpenCV_LIBS debug;C:/opencv/build2/lib/Debug/Debug/Debug/Debug/opencv_objdetect244d.lib;(...) = OpenCV_LIBS debug;C:/opencv/build2/lib/Debug/Debug/Debug/Debug/Debug/opencv_objdetect244d.lib;(...) = OpenCV_LIBS
我的CMake脚本做错了什么吗?
发布于 2013-03-08 13:41:03
好的,当OpenCVConfig.cmake连续调用包含了几次OpenCV_LIBS变量时,FIND_PACKAGE()似乎破坏了FIND_PACKAGE()变量。
一个快速解决方法是将FORCE添加到OpenCVConfig.cmake中的91-94行中。
# Provide the libs directories to the caller
set(OpenCV_LIB_DIR_OPT "C:/opencv/build2/lib" CACHE PATH "Path where release OpenCV libraries are located" FORCE)
set(OpenCV_LIB_DIR_DBG "C:/opencv/build2/lib" CACHE PATH "Path where debug OpenCV libraries are located" FORCE)
set(OpenCV_3RDPARTY_LIB_DIR_OPT "C:/opencv/build2/3rdparty/lib" CACHE PATH "Path where release 3rdpaty OpenCV dependencies are located" FORCE)
set(OpenCV_3RDPARTY_LIB_DIR_DBG "C:/opencv/build2/3rdparty/lib" CACHE PATH "Path where debug 3rdpaty OpenCV dependencies are located" FORCE)要修改的文件是C:\opencv\cmake\templates\OpenCVConfig.cmake.in。
然后重建/重新编译/重新安装OpenCV,然后是您自己的项目。
https://stackoverflow.com/questions/15293220
复制相似问题