【问题标题】:Installing and Linking OpenCV 2.4.3 on 64 bit windows with CMake使用 CMake 在 64 位窗口上安装和链接 OpenCV 2.4.3
【发布时间】:2012-12-14 22:52:46
【问题描述】:

我目前正在尝试将 CMake 项目从 Linux 转换到依赖于 OpenCV 的 Windows,但在将库链接到可执行文件时遇到问题。

我在下面发布了大概的 CMakeLists.txt 文件,其中省略了一些私人内容:

project(my_project_name)
cmake_minimum_required(VERSION 2.8)

SET(CMAKE_CXX_FLAGS "-g -Wall")
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/../bin)

FIND_PACKAGE(OpenCV REQUIRED)

IF(NOT OpenCV_FOUND)
    MESSAGE(FATAL_ERROR "OpenCV not found")
ENDIF()

SET(PROJECT_HDRS
    #headers here
)

SET(PROJECT_SRCS
    #sources here
)

add_executable(${PROJECT_NAME} ${PROJECT_SRCS})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${OpenCV_LIBS})

这个 CMakeLists.txt 文件在 Linux 上运行良好,但在 Windows 上链接有问题。我的第一反应是 OpenCV 安装不好?以下是我在安装 OpenCV 时使用的大致步骤

  1. 下载 OpenCV 2.4.3 可执行文件(自解压存档)
  2. 解压到某个目录
  3. 使用 CMake-Gui 配置生成 OpenCV.sln
  4. 在 Visual Studio C++ 2010 Express 中打开并在调试和发布配置中构建 ALL_BUILD 项目
  5. 构建 INSTALL 项目

当我尝试构建自己的项目时,我收到错误“未定义对 'cv::waitKey(int)' 的引用”错误,这让我认为这是一个链接器问题。我试图指向 . lib文件直接,如:

target_link_libraries(${PROJECT_NAME} C:/someDirectory/opencv_core243.lib)

但我仍然得到同样的错误。

我还尝试了这些 StackOverflow 线程中描述的方法: herehere

如果我遗漏了一些明显的东西,我提前道歉,但这或多或少是我第一次在 Windows 上开发,我的想法已经用完了。

【问题讨论】:

    标签: windows opencv cmake


    【解决方案1】:

    据我所知,问题在于 visual studio2010vc++2010 带有 .net framework 4.5

    将其降级为.net framework4(即卸载.net 4.5并安装4.0)。 这样就可以解决问题了... 我把头撞到桌子上解决了上述问题.. 要不然 用新的服务包修补visual c++

    【讨论】:

      【解决方案2】:

      有点晚了,但是……我们走吧

      对我来说这个教程很完美

      http://kevinhughes.ca/tutorials/opencv-install-on-windows-with-codeblocks-and-mingw/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-06-13
        • 2012-10-22
        • 1970-01-01
        • 2017-09-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-02
        相关资源
        最近更新 更多