使用CMake在64位窗口上安装和链接OpenCV 2.4.3

时间:2012-12-14 22:52:47

标签: windows opencv cmake

我目前正在尝试将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项目
  6. 当我尝试构建自己的项目时,我得到错误“未定义引用'cv :: waitKey(int)'错误,这让我觉得这是一个链接器问题。我试图指向。 lib文件直接,例如:

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

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

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

    如果我错过了一些明显的东西,我会事先道歉,但这或多或少是我第一次在Windows上开发而且我的想法已经用完了。

2 个答案:

答案 0 :(得分:0)

据我所知,问题是visual studio2010vc++2010附带。net framework 4.5

将其降级为.net framework4(即卸载.net 4.5并安装4.0)。 那样可以解决问题...... 解决了上述问题,我碰到了我的桌子。 要不然 使用新的Service Pack修补visual c++

答案 1 :(得分:0)

有点迟了但是......让我们走吧

对我来说这个教程很完美

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