2012-12-14 65 views
0

我目前正在嘗試將一個CMake項目從Linux轉換到依賴於OpenCV的Windows,但我在將這些庫鏈接到可執行文件時遇到問題。在64位窗口上安裝並鏈接OpenCV 2.4.3與CMake

我已經發布了下面一些私人的東西近似的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. 下載2.4.3 OpenCV的可執行文件(一個自解壓壓縮包)
  2. 提取到某個目錄
  3. 使用的CMake-GUI來配置和生成OpenCV.sln我用了大概步驟
  4. 打開在Visual Studio C++ 2010 Express和構建調試ALL_BUILD項目和Release配置
  5. 構建安裝項目

當我嘗試構建我自己的項目時,我找回錯誤「未定義的引用'cv :: waitKey(int)'錯誤,這使我認爲這是一個鏈接器問題。我試圖直接指向.lib文件,例如:

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

但我仍然收回相同的錯誤。

我也試圖在這些StackOverflow線程描述的方法: herehere

如果我錯過了某些明顯的事情,我會事前道歉,但這或多或少是我第一次在Windows上開發,而且我的想法已經過時。

回答

0

就我所知問題是visual studio2010vc++2010附帶。 net framework 4.5

將其降級至.net framework4(即卸載.net 4.5並安裝4.0)。 這將解決這個問題...... 我打我的頭,我的表解決上述問題.. 否則 新的服務包修補visual c++