在我们开始创建源文件之前,我们将生成 CMakeLists.txt 文件,允许我们编译项目,构建它并执行它。 以下 CMake 脚本简单,但足以编译和生成可执行文件:
cmake_minimum_required (VERSION 3.0)
PROJECT(Chapter4_Phototool)
set (CMAKE_CXX_STANDARD 11)
# Requires OpenCV
FIND_PACKAGE( OpenCV 4.0.0 REQUIRED )
MESSAGE('OpenCV version : ${OpenCV_VERSION}')
include_directories(${OpenCV_INCLUDE_DIRS})
link_directories(${OpenCV_LIB_DIR})
ADD_EXECUTABLE(${PROJECT_NAME} main.cpp)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${OpenCV_LIBS})
第一行表示生成我们的项目所需的最低 CMake 版本,第二行设置我们可以用作 ${PROJECT_NAME} 变量的项目名称,第三行设置所需的 C++版本; 在我们的例子中,需要 C++ 11 版本,我们可以在下一个片段中看到:
cmake_minimum_required (VERSION 3.0)
PROJECT(Chapter4_Phototool)
set (CMAKE_CXX_STANDARD 11)
此外,我们需要 OpenCV 库。 首先,我们需要找到库,然后我们将在使用 MESSAGE 函数找到的 OpenCV 库版本上显示一条消息:
# Requires OpenCV
FIND_PACKAGE( OpenCV 4.0.0 REQUIRED )
MESSAGE('OpenCV version : ${OpenCV_VERSION}')
如果找到最低版本为 4.0 的库,则我们在项目中包含头文件和库文件:
include_directories(${OpenCV_INCLUDE_DIRS})
link_directories(${OpenCV_LIB_DIR})
现在,我们只需要添加源文件来编译和链接 OpenCV 库。 项目名称变量用作可执行文件名,我们只使用一个名为 main.cpp 的源文件:
ADD_EXECUTABLE(${PROJECT_NAME} main.cpp)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${OpenCV_LIBS})