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})
|