news 2026/6/22 10:59:31

HoRain云--CMake跨平台构建全攻略

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HoRain云--CMake跨平台构建全攻略

🎬 HoRain 云小助手:个人主页

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

目录

⛳️ 推荐

CMake 安装与配置指南

一、CMake 简介

二、CMake 安装步骤

1. 下载与安装

2. 验证安装

三、CMake 配置与使用

1. 创建基本 CMake 项目

2. 配置 CMake 预设文件(CMakePresets.json)

3. CMake 与 vcpkg 集成

四、CMake 在不同平台的配置

1. Windows 平台

2. Linux 平台

3. Android 开发

五、CMake 常用命令详解

六、CMake 在 VSCode 中的配置

七、常见问题解决

1. CMake 找不到编译器

2. 依赖库找不到

3. CMake 版本不兼容

总结


CMake 安装与配置指南

一、CMake 简介

CMake 是一个跨平台的构建系统生成器,它使用名为CMakeLists.txt的文件来描述构建过程。CMake 本身并不编译代码,而是根据CMakeLists.txt文件生成适合特定平台的本地化构建脚本(如 Makefile、Visual Studio 项目文件等)。

CMake 的工作流程

  1. 解析CMakeLists.txt文件
  2. 生成本地构建脚本(Makefile、.vcxproj 等)
  3. 通过构建工具(make、msbuild 等)执行编译

二、CMake 安装步骤

1. 下载与安装

2. 验证安装

打开命令提示符(CMD)或 PowerShell,输入:

cmake -version

如果安装成功,将显示 CMake 版本号。

三、CMake 配置与使用

1. 创建基本 CMake 项目

  1. 创建CMakeLists.txt文件,内容如下:
cmake_minimum_required(VERSION 3.10) project(HelloWorld) add_executable(HelloWorld main.cpp)
  1. 创建源文件main.cpp
#include <iostream> int main() { std::cout << "Hello, CMake!" << std::endl; return 0; }
  1. 配置并构建项目:
mkdir build cd build cmake .. cmake --build .

2. 配置 CMake 预设文件(CMakePresets.json)

在项目根目录创建CMakePresets.json文件:

{ "version": 2, "configurePresets": [ { "name": "default", "generator": "Ninja", "binaryDir": "${sourceDir}/build", "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug" } } ] }

3. CMake 与 vcpkg 集成

vcpkg 是 C++ 依赖管理工具,可与 CMake 无缝集成:

  1. 创建vcpkg.json文件:
{ "dependencies": [ "fmt" ] }
  1. 添加依赖:
vcpkg add port fmt
  1. 创建CMakePresets.json配置工具链:
{ "version": 2, "configurePresets": [ { "name": "vcpkg", "generator": "Ninja", "binaryDir": "${sourceDir}/build", "cacheVariables": { "CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" } } ] }
  1. CMakeLists.txt中使用依赖:
find_package(fmt CONFIG REQUIRED) add_executable(HelloWorld main.cpp) target_link_libraries(HelloWorld PRIVATE fmt::fmt)

四、CMake 在不同平台的配置

1. Windows 平台

2. Linux 平台

wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz tar -zxvf cmake-3.5.2.tar.gz cd cmake-3.5.2 ./bootstrap --prefix=/usr make sudo make install

3. Android 开发

CMake 与 NDK 集成用于 Android 原生开发:

  1. 在 Android Studio 中安装 CMake 和 NDK

  2. build.gradle中配置 CMake:

android { ... externalNativeBuild { cmake { path "src/main/cpp/CMakeLists.txt" version "3.10.2" } } }

五、CMake 常用命令详解

命令说明
cmake_minimum_required(VERSION 3.10)指定 CMake 最低版本要求
project(HelloWorld)设置项目名称
add_executable(HelloWorld main.cpp)添加可执行目标
add_library(libname STATIC/SHARED src.cpp)添加库目标
find_package(fmt CONFIG REQUIRED)查找并配置外部库
target_link_libraries(HelloWorld PRIVATE fmt::fmt)链接库到目标
include_directories(include_dirs)添加头文件搜索路径

六、CMake 在 VSCode 中的配置

  1. 安装 VSCode 扩展

  2. 配置 VSCode

  3. CMake 设置(在settings.json中):

    { "cmake.buildDirectory": "${workspaceFolder}/build", "cmake.generator": "Ninja" }

七、常见问题解决

1. CMake 找不到编译器

2. 依赖库找不到

3. CMake 版本不兼容

总结

CMake 是跨平台 C/C++ 项目构建的必备工具,通过正确安装和配置,可以大大简化项目的构建和依赖管理。无论是简单的控制台程序还是复杂的 Android 原生应用,CMake 都能提供强大的构建支持。

掌握 CMake 的基本配置和常用命令,将使您的 C/C++ 开发工作更加高效和可靠。

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 11:43:08

2026毕设ssm+vue健康管理系统app论文+程序

本系统&#xff08;程序源码&#xff09;带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、选题背景随着信息技术的不断发展&#xff0c;医疗行业也逐渐向数字化、智能化方向发展。传统的医疗服务模式存在挂号难、排队久、信息不…

作者头像 李华
网站建设 2026/6/22 4:40:47

Zotero PDF翻译插件:3个技巧让你快速掌握英文文献阅读

Zotero PDF翻译插件&#xff1a;3个技巧让你快速掌握英文文献阅读 【免费下载链接】zotero-pdf2zh PDF2zh for Zotero | Zotero PDF中文翻译插件 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-pdf2zh 还在为堆积如山的英文文献发愁吗&#xff1f;Zotero PDF翻译…

作者头像 李华
网站建设 2026/6/15 15:17:58

CreamInstaller:跨平台游戏DLC智能解锁完全手册

CreamInstaller&#xff1a;跨平台游戏DLC智能解锁完全手册 【免费下载链接】CreamApi 项目地址: https://gitcode.com/gh_mirrors/cr/CreamApi 还在为高价DLC望而却步&#xff1f;CreamInstaller作为一款革命性的开源工具&#xff0c;能够自动扫描Steam、Epic、Ubisof…

作者头像 李华
网站建设 2026/6/19 21:42:04

PrismLauncher:我的世界多版本管理神器,游戏体验全面升级

PrismLauncher&#xff1a;我的世界多版本管理神器&#xff0c;游戏体验全面升级 【免费下载链接】PrismLauncher A custom launcher for Minecraft that allows you to easily manage multiple installations of Minecraft at once (Fork of MultiMC) 项目地址: https://git…

作者头像 李华
网站建设 2026/6/15 14:32:56

邮件翻译革命:kiss-translator让跨语言沟通零障碍

邮件翻译革命&#xff1a;kiss-translator让跨语言沟通零障碍 【免费下载链接】kiss-translator A simple, open source bilingual translation extension & Greasemonkey script (一个简约、开源的 双语对照翻译扩展 & 油猴脚本) 项目地址: https://gitcode.com/gh_…

作者头像 李华
网站建设 2026/6/20 11:25:47

终极游戏启动器:完美解决我的世界多版本管理难题

终极游戏启动器&#xff1a;完美解决我的世界多版本管理难题 【免费下载链接】PrismLauncher A custom launcher for Minecraft that allows you to easily manage multiple installations of Minecraft at once (Fork of MultiMC) 项目地址: https://gitcode.com/gh_mirrors…

作者头像 李华