【问题标题】:CMake VS2017 C++ - cannot open file opencv_world.libCMake VS2017 C++ - 无法打开文件 opencv_world.lib
【发布时间】:2017-12-19 00:29:23
【问题描述】:

我目前正在做一个项目,我想添加 OpenCV。 我下载了opencv 3.3.1的预建库和最新版本的cmake。 此外,我在 x64 调试模式下在 Windows x64 操作系统上使用 Visual Studios 2017。

CMake 可以毫无错误地构建所有内容。 但是,当我想在 VS 中构建我的项目或调试时, 我收到一个致命的链接错误:

致命错误 LNK1104:无法打开文件 'C:\OpenCV 3.3.1\opencv\build\lib\Debug\opencv_world331d.lib'

所以我检查了 lib 文件的目录。 但是目录和lib文件都不存在。

我附在我的 CMakeLists.txt 下方:

SET( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}" )
FIND_PACKAGE( KinectSDK2 REQUIRED )
INCLUDE_DIRECTORIES( ${KinectSDK2_INCLUDE_DIRS} )
LINK_DIRECTORIES( ${KinectSDK2_LIBRARY_DIRS} ) 
SET( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}" )
FIND_PACKAGE( PCL 1.8.1 REQUIRED )
INCLUDE_DIRECTORIES( ${PCL_INCLUDE_DIRS} )
LINK_DIRECTORIES( ${PCL_LIBRARY_DIRS} )
FIND_PACKAGE( OpenCV REQUIRED )
INCLUDE_DIRECTORIES( ${OpenCV_INCLUDE_DIRS} )
LINK_DIRECTORIES( ${OpenCV_LIBRARY_DIRS} )
MESSAGE(STATUS "OpenCV library status:")
MESSAGE(STATUS "    version: ${OpenCV_VERSION}")
MESSAGE(STATUS "    libraries: ${OpenCV_LIBS}")
MESSAGE(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}")
ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS)
FILE( GLOB DesiredView_SRC
    "*.h"
    "*.cpp"
)
ADD_EXECUTABLE( DesiredView ${DesiredView_SRC} )

TARGET_LINK_LIBRARIES( DesiredView ${PCL_LIBRARIES} ${KinectSDK2_LIBRARIES} ${OpenCV_LIBS} )

我 2 天前刚开始使用 CMake。 所以我对这个很陌生。

非常感谢您的帮助。

弗洛里安

【问题讨论】:

  • 欢迎来到 Stack Overflow!我看到您在代码中插入了message() 调用。他们的输出可能会有所帮助 - 将其添加到问题帖子中。 I downloaded the pre-built library of opencv 3.3.1 - 你在哪里(在哪个目录)放置 opencv 库?

标签: c++ visual-studio opencv cmake


【解决方案1】:

感谢您的回答。但是,我必须在这里发布。 这是 message() 代码。

OpenCV 库状态: 版本:3.3.1 库:opencv_calib3d; opencv_core; opencv_cudaarithm; opencv_cudabgsegm; opencv_cudacodec; opencv_cudafeatures2d; opencv_cudafilters; opencv_cudaimgproc; opencv_cudaobjdetect; opencv_cudaoptflow; opencv_cudastereo; opencv_cudawarping; opencv_dnn; opencv_features2d; opencv_flann; opencv_highgui; opencv_imgcodecs; opencv_imgproc; opencv_ml; opencv_objdetect; opencv_photo; opencv_shape; opencv_stitching; opencv_superres; opencv_video;opencv_videoio;opencv_videostab;opencv_world 包含路径:C:/OpenCV 3.3.1/opencv/build;C:/OpenCV 3.3.1/opencv/sources/include;C:/OpenCV 3.3.1/opencv/sources/include/opencv;C:/OpenCV 3.3 .1/opencv/sources/modules/core/include;C:/OpenCV 3.3.1/opencv/sources/modules/cudaarithm/include;C:/OpenCV 3.3.1/opencv/sources/modules/flann/include;C :/OpenCV 3.3.1/opencv/sources/modules/imgproc/include;C:/OpenCV 3.3.1/opencv/sources/modules/ml/include;C:/OpenCV 3.3.1/opencv/sources/modules/objdetect /include;C:/OpenCV 3.3.1/opencv/sources/modules/video/include;C:/OpenCV 3.3.1/opencv/sources/modules/cudabgsegm/include;C:/OpenCV 3.3.1/opencv/sources /modules/cudafilters/include;C:/OpenCV 3.3.1/opencv/sources/modules/cudaimgproc/include;C:/OpenCV 3.3.1/opencv/sources/modules/cudawarping/include;C:/OpenCV 3.3.1 /opencv/sources/modules/dnn/include;C:/OpenCV 3.3.1/opencv/sources/modules/imgcodecs/include;C:/OpenCV 3.3.1/opencv/sources/modules/photo/include;C:/ OpenCV 3.3.1/opencv/sources/modules/shape/include;C:/OpenCV 3.3.1/opencv/sources/modules/videoi o/include;C:/OpenCV 3.3.1/opencv/sources/modules/cudacodec/include;C:/OpenCV 3.3.1/opencv/sources/modules/cudaobjdetect/include;C:/OpenCV 3.3.1/opencv/来源/模块/cudaoptflow/include;C:/OpenCV 3.3.1/opencv/sources/modules/highgui/include;C:/OpenCV 3.3.1/opencv/sources/modules/superres/include;C:/OpenCV 3.3。 1/opencv/sources/modules/features2d/include;C:/OpenCV 3.3.1/opencv/sources/modules/calib3d/include;C:/OpenCV 3.3.1/opencv/sources/modules/cudafeatures2d/include;C: /OpenCV 3.3.1/opencv/sources/modules/cudastereo/include;C:/OpenCV 3.3.1/opencv/sources/modules/stitching/include;C:/OpenCV 3.3.1/opencv/sources/modules/videostab/ include;C:/OpenCV 3.3.1/opencv/sources/modules/world/include;C:/OpenCV 3.3.1/opencv/sources/modules/ts/include

我的构建和源文件夹位于此处:

C:\OpenCV 3.3.1\opencv

谢谢:)

【讨论】:

  • 我再次用CMake构建了OpenCV-build文件夹并删除了原来下载的build文件夹,因为CMake找不到opencv-config.cmake文件。在我重建它之后,它可以找到 cmake 文件,但是现在它没有找到我已经提到的 lib 文件。和这个有关系吗?
  • 奇怪的是我已经可以包含opencv头文件并使用该库了。就在我想调试的时候它失败了。
  • 你是否在调试模式和发布模式下编译过OpenCV?也许你只在发布模式下编译它..
  • 不,我只在调试 x64 模式下编译它。
  • 你安装了吗?我的意思是,当你编译它时,你需要“构建” ALL_BUILD 项目,然后“构建” INSTALL 项目。它将复制您在 CMake 配置中指定的库。然后您必须确保该文件夹存在并将您的应用程序链接到此文件夹/库
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多