42 lines
2.0 KiB
CMake
42 lines
2.0 KiB
CMake
|
|
# ============================================================
|
|||
|
|
# 实验 1:图像读取与保存 - CMake 构建配置文件
|
|||
|
|
# ============================================================
|
|||
|
|
|
|||
|
|
# cmake_minimum_required: 指定构建此项目所需的最低 CMake 版本
|
|||
|
|
# VERSION 3.10 是一个相对较老但足够稳定的版本(WSL Ubuntu 默认通常满足)
|
|||
|
|
cmake_minimum_required(VERSION 3.10)
|
|||
|
|
|
|||
|
|
# project: 给你的项目起一个名字
|
|||
|
|
# 这个名字会出现在生成的解决方案中,也方便你辨认
|
|||
|
|
# 命名规则:exp + 实验编号 + 下划线 + 实验英文名
|
|||
|
|
project(exp1_read_write)
|
|||
|
|
|
|||
|
|
# set(CMAKE_CXX_STANDARD 11): 指定使用 C++11 标准
|
|||
|
|
# C++11 提供了 auto、范围 for 等现代特性,代码写起来更舒服
|
|||
|
|
set(CMAKE_CXX_STANDARD 11)
|
|||
|
|
|
|||
|
|
# CMAKE_CXX_STANDARD_REQUIRED: 设为 ON 表示"必须"使用 C++11
|
|||
|
|
# 如果编译器不支持 C++11,CMake 会直接报错,而不是偷偷降级
|
|||
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|||
|
|
|
|||
|
|
# find_package: 寻找外部库,这里是寻找 OpenCV
|
|||
|
|
# REQUIRED 表示 OpenCV 是必须的,找不到就报错并停止配置
|
|||
|
|
# CMake 会自动查找 OpenCV 的头文件路径和库文件路径
|
|||
|
|
find_package(OpenCV REQUIRED)
|
|||
|
|
|
|||
|
|
# add_executable: 告诉 CMake 我们要生成一个可执行文件
|
|||
|
|
# 第一个参数 "exp1" 是可执行文件的名字(编译后运行 ./exp1)
|
|||
|
|
# 第二个参数 "main.cpp" 是参与编译的源文件(可以有多个)
|
|||
|
|
add_executable(exp1 main.cpp)
|
|||
|
|
|
|||
|
|
# target_link_libraries: 将 OpenCV 的库文件链接到我们的可执行文件上
|
|||
|
|
# ${OpenCV_LIBS} 是 find_package(OpenCV) 自动填充的变量
|
|||
|
|
# 它包含了 OpenCV 所有需要的 .so 库文件路径
|
|||
|
|
# 不写这一行的话,编译时会出现"未定义引用"的链接错误
|
|||
|
|
target_link_libraries(exp1 ${OpenCV_LIBS})
|
|||
|
|
|
|||
|
|
# include_directories: 将 OpenCV 的头文件目录添加到编译器的搜索路径中
|
|||
|
|
# ${OpenCV_INCLUDE_DIRS} 也是 find_package 自动填充的
|
|||
|
|
# 这样编译器才能找到 #include <opencv2/opencv.hpp> 这样的头文件
|
|||
|
|
include_directories(${OpenCV_INCLUDE_DIRS})
|