首页 > 后端开发 > C++ > 正文

c++ cmake的基本用法怎么写_c++ cmake使用教程

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

c++ cmake的基本用法怎么写_c++ cmake使用教程

CMake 是一个跨平台的构建系统生成器,广泛用于 C++ 项目中。它不直接编译代码,而是根据 CMakeLists.txt 文件生成 Makefile 或其他构建系统(如 Ninja、Visual Studio 项目),再通过这些工具完成编译。下面是一个实用的 C++ CMake 使用教程,帮助你快速上手。

1. 基本项目结构

一个典型的简单 C++ 项目结构如下:
my_project/
├── CMakeLists.txt
├── main.cpp
登录后复制

main.cpp 中写一个简单的程序:

#include <iostream>
int main() {
    std::cout << "Hello, CMake!" << std::endl;
    return 0;
}
登录后复制

2. 编写 CMakeLists.txt

在项目根目录创建 CMakeLists.txt,内容如下:

cmake_minimum_required(VERSION 3.10)
project(MyApp)
<p>set(CMAKE_CXX_STANDARD 14)</p><p><span>立即学习</span>“<a href="https://pan.quark.cn/s/6e7abc4abb9f" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">C++免费学习笔记(深入)</a>”;</p><p>add_executable(myapp main.cpp)</p>
登录后复制
  • cmake_minimum_required:指定所需最低 CMake 版本。
  • project:定义项目名称,可选语言默认为 C 和 C++。
  • set(CMAKE_CXX_STANDARD 14):设置 C++ 标准为 C++14,也可设为 17 或 20。
  • add_executable:定义一个可执行文件 myapp,由 main.cpp 编译生成。

3. 构建项目

使用命令行进行构建(推荐在单独的构建目录中进行,避免污染源码):

mkdir build
cd build
cmake ..
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 中可以这样写:

法语写作助手
法语写作助手

法语助手旗下的AI智能写作平台,支持语法、拼写自动纠错,一键改写、润色你的法语作文。

法语写作助手 31
查看详情 法语写作助手
cmake_minimum_required(VERSION 3.10)
project(MyApp)
<p>set(CMAKE_CXX_STANDARD 14)</p><p><span>立即学习</span>“<a href="https://pan.quark.cn/s/6e7abc4abb9f" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">C++免费学习笔记(深入)</a>”;</p><p>add_executable(myapp main.cpp hello.cpp)</p>
登录后复制

也可以用变量简化:

set(SOURCES
    main.cpp
    hello.cpp
)
<p>add_executable(myapp ${SOURCES})</p>
登录后复制

5. 链接外部库(以 OpenCV 为例)

如果你的项目依赖第三方库,比如 OpenCV,可以这样配置:

find_package(OpenCV REQUIRED)
<p>include_directories(${OpenCV_INCLUDE_DIRS})</p><p>add_executable(myapp main.cpp)
target_link_libraries(myapp ${OpenCV_LIBS})</p>
登录后复制
  • 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使用教程的详细内容,更多请关注php中文网其它相关文章!

c++速学教程(入门到精通)
c++速学教程(入门到精通)

c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号