我目前正在嘗試將一個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的
- 下載2.4.3 OpenCV的可執行文件(一個自解壓壓縮包)
- 提取到某個目錄
- 使用的CMake-GUI來配置和生成OpenCV.sln我用了大概步驟
- 打開在Visual Studio C++ 2010 Express和構建調試ALL_BUILD項目和Release配置
- 構建安裝項目
當我嘗試構建我自己的項目時,我找回錯誤「未定義的引用'cv :: waitKey(int)'錯誤,這使我認爲這是一個鏈接器問題。我試圖直接指向.lib文件,例如:
target_link_libraries(${PROJECT_NAME} C:/someDirectory/opencv_core243.lib)
但我仍然收回相同的錯誤。
我也試圖在這些StackOverflow線程描述的方法: here和here。
如果我錯過了某些明顯的事情,我會事前道歉,但這或多或少是我第一次在Windows上開發,而且我的想法已經過時。