0

我目前正在尝试将 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. 构建安装项目

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

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

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

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

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

4

2 回答 2

0

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

对我来说这个教程很完美

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

于 2015-04-24T14:41:22.140 回答
0

visual studio2010据我所知,问题出vc++2010在 .net framework 4.5

将其降级为.net framework4(即卸载.net 4.5并安装4.0)。那将解决问题...我一头撞到我的桌子上解决了上述问题..或者visual c++用新的服务包修补

于 2013-05-28T16:42:58.853 回答