新建一個 CMakeList.txt
復制下面代碼,并保存
cmake_minimum_required (VERSION 3.0)PROJECT(Chapter2)set (CMAKE_CXX_STANDARD 11)IF(EXISTS ${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)conan_basic_setup()
ENDIF()# Requires OpenCV
set(OpenCV_DIR D:/opencv/build/x64/vc15/lib)
FIND_PACKAGE( OpenCV REQUIRED )
MESSAGE("OpenCV version : ${OpenCV_VERSION}")ADD_EXECUTABLE( sample1 sample1.cpp )
TARGET_LINK_LIBRARIES( sample1 ${OpenCV_LIBS} ${CONAN_LIBS} -lprotobuf ) ADD_EXECUTABLE( sample2 sample2.cpp )
TARGET_LINK_LIBRARIES( sample2 ${OpenCV_LIBS} ${CONAN_LIBS} -lprotobuf)ADD_EXECUTABLE( sample3 sample3.cpp )
TARGET_LINK_LIBRARIES( sample3 ${OpenCV_LIBS} ${CONAN_LIBS} -lprotobuf)ADD_EXECUTABLE( ${PROJECT_NAME} main.cpp )
TARGET_LINK_LIBRARIES( ${PROJECT_NAME} ${OpenCV_LIBS} ${CONAN_LIBS} -lprotobuf)
然后就新建一下文件夾(你的工程名),當然,你不建也是可以的。只是方便自己管理工程
并把CMakeList.txt復制到文件夾下我的文件夾是D:\Chapter2
其中
sample1.cpp
sample2.cpp
sample3.cpp
main.cpp
是你的C++的程序
接下來就是編譯了。
打開CMD
cd到D:\Chapter2文件夾后就可以到下面的命令了
mkdir build
cd build
cmake .. -G "Visual Studio 15 2017 Win64"
然后等待就可以了。
可能出現的錯誤:
1,出來 Required OpenCV but cannot find one. 類似的這種解決就是路徑沒有設置好。CMakeLists里的set(OpenCV_DIR D:/opencv/build/x64/vc15/lib) 這個就是你要設置的opencv的路徑,不能設置到D:/opencv/build,不然還是會繼續報 no binary的錯。
2020-03-31 更新,如果把opencv的路徑添加到了系統的環境變量,可以不用在cmakelist 設置opencv的路徑了。
2,編譯成功后,但是打開工程,卻會報 模塊計算機類型x64與目標計算機類型X86沖突。
這種是直接在編譯的時候 cmake … , 這樣就會x86的編譯器編譯了。 所以要用 cmake … -G “Visual Studio 15 2017 Win64”,看你自己的Visual Studio 的版本,就用自己的版本,我的是2017的。
3,如果編譯成功后。打開你的工程,然后編譯成功后,還可能報 “無法啟動程序 debug\ALL_BUILD 拒絕訪問”,可以把ALL_BUILD刪除了。或者把啟動項目更改為你的項目(如下圖)。再嘗試一下。應該可以的了。