windows CMakeLists.txt


在windows下寫好CMakeLists.txt,然后配合cmake-gui使用。

CMakeLists.txt寫的不夠好,后期優化,以下僅供參考:

 1 # set(OpenCV_DIR D:/Program Files/opencv3.4.6/opencv/build/include/)
 2 find_package(OpenCV 3.4.6 REQUIRED)
 3 
 4 # If the package has been found, several variables will
 5 # be set, you can find the full list with descriptions
 6 # in the OpenCVConfig.cmake file.
 7 # Print some message showing some of them
 8 message(STATUS "OpenCV library status:")
 9 message(STATUS "    version: ${OpenCV_VERSION}")
10 message(STATUS "    libraries: ${OpenCV_LIBS}")
11 message(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}")
12 set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT")
13 set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")
14 set(LINK_DIR D:/windows/x64/Release/)
15 # Add OpenCV headers location to your include paths
16 include_directories(${OpenCV_INCLUDE_DIRS})
17 
18 # Declare the executable target built from your sources
19 
20 aux_source_directory(. DIR_SRCS)
21 add_executable(main ${DIR_SRCS})
22 
23 # Link your application with OpenCV libraries
24 # link_libraries("D:/windows/x64/Release")
25 LINK_DIRECTORIES(${LINK_DIR}) #鏈接靜態庫目錄
26 target_link_libraries(main ${OpenCV_LIBS} ${LINK_DIR}/idcard.lib)

 

由於依賴opencv靜態庫,opencv又沒有設置為環境變量,cmake直接找依賴opencv時總是會找到Anaconda里面的opencv,此時需要把opencv路徑指定到你編譯opencv靜態庫的路徑:

 

也可以將CMakeLists.txt寫成下面的形式,這樣就可以自己在cmake-gui里面自己配置需要鏈接的靜態庫路徑:

 1 # cmake needs this line
 2 cmake_minimum_required(VERSION 2.8)
 3 
 4 # Define project name
 5 project(DLCropTest)
 6 
 7 # Find OpenCV, you may need to set OpenCV_DIR variable
 8 # to the absolute path to the directory containing OpenCVConfig.cmake file
 9 # via the command line or GUI
10 # set(OpenCV_DIR D:/Program Files/opencv3.4.6/opencv/build/include/)
11 find_package(OpenCV REQUIRED)
12 find_library(LINK_DIR REQUIRED)
13 # If the package has been found, several variables will
14 # be set, you can find the full list with descriptions
15 # in the OpenCVConfig.cmake file.
16 # Print some message showing some of them
17 message(STATUS "OpenCV library status:")
18 message(STATUS "    version: ${OpenCV_VERSION}")
19 message(STATUS "    libraries: ${OpenCV_LIBS}")
20 message(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}")
21 set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT")
22 set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")
23 # set(LINK_DIR D:/windows/x64/Release/)
24 # Add OpenCV headers location to your include paths
25 include_directories(${OpenCV_INCLUDE_DIRS})
26 
27 # Declare the executable target built from your sources
28 
29 aux_source_directory(. DIR_SRCS)
30 add_executable(main ${DIR_SRCS})
31 
32 # Link your application with OpenCV libraries
33 # link_libraries("D:/windows/x64/Release")
34 LINK_DIRECTORIES(${LINK_DIR}) #鏈接靜態庫目錄
35 target_link_libraries(main ${OpenCV_LIBS} ${LINK_DIR}/*.lib)

cmake-gui對應位置如下圖:

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM