CMake通过CMakeLists.txt生成构建系统,首先创建项目结构及CMake配置文件,设置版本、项目名、C++标准并定义可执行目标,接着在build目录中运行cmake命令生成Makefile并编译,支持多源文件添加与变量管理,可通过find_package链接OpenCV等外部库,推荐使用独立构建目录和编译类型控制,逐步掌握高级功能以应对复杂项目。

CMake 是一个跨平台的构建系统生成器,广泛用于 C++ 项目中。它不直接编译代码,而是根据 CMakeLists.txt 文件生成 Makefile 或其他构建系统(如 Ninja、Visual Studio 项目),再通过这些工具完成编译。下面是一个实用的 C++ CMake 使用教程,帮助你快速上手。
1. 基本项目结构
一个典型的简单 C++ 项目结构如下:
my_project/├── CMakeLists.txt├── main.cpp
在 main.cpp 中写一个简单的程序:
#include int main() { std::cout << "Hello, CMake!" << std::endl; return 0;}
2. 编写 CMakeLists.txt
在项目根目录创建 CMakeLists.txt,内容如下:
cmake_minimum_required(VERSION 3.10)project(MyApp)set(CMAKE_CXX_STANDARD 14)
立即学习“C++免费学习笔记(深入)”;
add_executable(myapp main.cpp)
cmake_minimum_required:指定所需最低 CMake 版本。project:定义项目名称,可选语言默认为 C 和 C++。set(CMAKE_CXX_STANDARD 14):设置 C++ 标准为 C++14,也可设为 17 或 20。add_executable:定义一个可执行文件 myapp,由 main.cpp 编译生成。
3. 构建项目
使用命令行进行构建(推荐在单独的构建目录中进行,避免污染源码):
mkdir buildcd buildcmake ..make
mkdir build:创建构建目录。cmake ..:在 build 目录中运行 cmake,读取上级目录的 CMakeLists.txt 并生成 Makefile。make:调用 make 编译生成可执行文件。
完成后,在 build 目录下会生成可执行文件 myapp,运行它:
./myapp# 输出: Hello, CMake!
4. 添加多个源文件
如果项目有多个 .cpp 文件,比如:
my_project/├── CMakeLists.txt├── main.cpp├── hello.cpp├── hello.h
在 CMakeLists.txt 中可以这样写:
cmake_minimum_required(VERSION 3.10)project(MyApp)set(CMAKE_CXX_STANDARD 14)
立即学习“C++免费学习笔记(深入)”;
add_executable(myapp main.cpp hello.cpp)
也可以用变量简化:
set(SOURCES main.cpp hello.cpp)add_executable(myapp ${SOURCES})
5. 链接外部库(以 OpenCV 为例)
如果你的项目依赖第三方库,比如 OpenCV,可以这样配置:
find_package(OpenCV REQUIRED)include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(myapp main.cpp)target_link_libraries(myapp ${OpenCV_LIBS})
find_package:查找已安装的 OpenCV 包。include_directories:添加头文件搜索路径。target_link_libraries:将库链接到目标可执行文件。
确保系统中已安装 OpenCV,并配置好 CMake 的查找路径。
6. 常见技巧与建议
始终使用独立的构建目录,避免生成文件混入源码。使用 target_compile_features 指定编译特性,比全局 set 更精确。对于大型项目,使用 add_subdirectory 组织多个模块。调试构建时可用 cmake -DCMAKE_BUILD_TYPE=Debug ..。发布版本使用 Release 模式优化:-DCMAKE_BUILD_TYPE=Release。
基本上就这些。CMake 功能强大,但初学者掌握以上内容就能应对大多数 C++ 项目构建需求。随着项目变复杂,可以逐步学习函数、宏、自定义命令等高级功能。
以上就是c++++ cmake的基本用法怎么写_c++ cmake使用教程的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1479490.html
微信扫一扫
支付宝扫一扫