我認爲這是創建使用OpenCV庫的項目的基本步驟,因此您不需要手動包含所有庫。沒有關於這個主題的詳細信息,至少對於剛剛想要使用OpenCV的新手來說,那麼:使用Cmake配置C++ OpenCV項目
哪個是最簡單和可擴展的方式來創建Cmake多平臺C++ OpenCV?
我認爲這是創建使用OpenCV庫的項目的基本步驟,因此您不需要手動包含所有庫。沒有關於這個主題的詳細信息,至少對於剛剛想要使用OpenCV的新手來說,那麼:使用Cmake配置C++ OpenCV項目
哪個是最簡單和可擴展的方式來創建Cmake多平臺C++ OpenCV?
第一:創建一個文件夾項目包含兩個子文件夾SRC和包括,和一個叫的CMakeLists.txt文件。
第二個:把你的cpp放入src文件夾和你的頭文件夾在include文件夾中。
三:你的CMakeLists.txt應該是這樣的:
cmake_minimum_required(VERSION 2.8)
PROJECT (name)
find_package(OpenCV REQUIRED)
set(NAME_SRC
src/main.cpp
)
set(NAME_HEADERS
include/header.h
)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
link_directories(${CMAKE_BINARY_DIR}/bin)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
add_executable(name ${NAME_SRC} ${NAME_HEADERS})
target_link_libraries(sample_pcTest ${OpenCV_LIBS})
四:打開CMake的GUI,選擇根文件夾作爲輸入,併爲輸出build文件夾。點擊配置,然後生成,並選擇生成器(VisualStudio,Eclipse,...)
我使用的是opencv3.0和cmake3.8, 配置下面的工作適合我!
######## A simple cmakelists.txt file for OpenCV() #############
cmake_minimum_required(VERSION 2.8) # 初始化Cmake版本檢測
PROJECT(word) # 工程名
FIND_PACKAGE(OpenCV REQUIRED) # 環境變量中尋找OpenCV的庫的位置
INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
ADD_EXECUTABLE(word main.c) # 將文件加入工程,有多少.c或者cpp都加進去
TARGET_LINK_LIBRARIES (word ${OpenCV_LIBS}) # 這兩行的次序也不能變!加入動態鏈接庫
########### end ####################################
的Dll對於CMake> = 2.8.11來說不需要調用這是唯一正確的方法。自我接受的答案至少可以說是完全誤導性的。 – Slava
請不要推薦使用「link_directories」 - 而是將完整路徑名作爲參數提供給target_link_libraries。 link_directories文檔(http://cmake.org/cmake/help/v2.8.10/cmake.html#command:link_directories)說:「請注意,這個命令很少需要。」 – DLRdave
你可以省略NAME_HEADERS - CMake掃描源文件來確定頭文件的依賴關係。 –
@DLRdave在Windows中,您需要'link_directories($ {OpenCV_LIB_DIR})',因爲$ {OpenCV_LIBS}中返回的值僅包含庫名稱(不是完整路徑)。如果你想讓'$ {OpenCV_LIBS}'實際包含庫路徑,那麼你需要'find_package(OpenCV REQUIRED core imgproc ...)'。靜態構建意味着在'find_package'調用中添加每個opencv模塊。 –