首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cmake:错误的OpenCV路径生成

Cmake:错误的OpenCV路径生成
EN

Stack Overflow用户
提问于 2013-03-08 11:44:08
回答 1查看 1.7K关注 0票数 4

我的环境:

  • Windows 7 64
  • CMake 2.8.10.2
  • Opencv 2.4.4
  • Visual Studio Express 2012

我的问题:

我有一个使用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变量:

代码语言:javascript
复制
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脚本做错了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-08 13:41:03

好的,当OpenCVConfig.cmake连续调用包含了几次OpenCV_LIBS变量时,FIND_PACKAGE()似乎破坏了FIND_PACKAGE()变量。

一个快速解决方法是将FORCE添加到OpenCVConfig.cmake中的91-94行中。

代码语言:javascript
复制
# 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,然后是您自己的项目。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15293220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档