news 2026/9/29 22:18:43

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/9/27 7:16:35

CSANMT模型在社交媒体内容翻译中的适应性优化

CSANMT模型在社交媒体内容翻译中的适应性优化 &#x1f310; 背景与挑战&#xff1a;AI智能中英翻译的现实需求 随着全球社交网络的深度融合&#xff0c;中文用户生成内容&#xff08;UGC&#xff09;正以前所未有的速度向英语世界传播。从微博热评到小红书种草文&#xff0c…

作者头像 李华
网站建设 2026/9/27 23:52:20

终极指南:如何在VSCode中实现IntelliJ IDEA快捷键无缝迁移

终极指南&#xff1a;如何在VSCode中实现IntelliJ IDEA快捷键无缝迁移 【免费下载链接】vscode-intellij-idea-keybindings Port of IntelliJ IDEA key bindings for VS Code. 项目地址: https://gitcode.com/gh_mirrors/vs/vscode-intellij-idea-keybindings 你是否刚从…

作者头像 李华
网站建设 2026/9/27 15:08:56

springboot基于Vue.is的社区服务平台设计开发实现

技术背景SpringBoot作为Java生态中主流的轻量级框架&#xff0c;通过简化配置和依赖管理&#xff0c;显著提升了后端开发效率。其内嵌服务器、自动化配置等特性&#xff0c;适合快速构建高并发、分布式的社区服务后端系统。Vue.js作为渐进式前端框架&#xff0c;凭借响应式数据…

作者头像 李华
网站建设 2026/9/29 18:49:00

springboot基于微信小程序的智慧社区娱乐服务管理平台

背景分析随着移动互联网的普及和智慧城市建设的推进&#xff0c;社区服务管理逐步向数字化、智能化转型。微信小程序凭借其轻量级、易传播、高用户粘性等特点&#xff0c;成为社区服务的重要入口。传统社区娱乐服务存在信息滞后、管理低效、居民参与度低等问题&#xff0c;亟需…

作者头像 李华
网站建设 2026/9/27 3:51:03

Textractor完整使用指南:游戏文本提取的终极解决方案

Textractor完整使用指南&#xff1a;游戏文本提取的终极解决方案 【免费下载链接】Textractor Textractor: 是一个开源的视频游戏文本钩子工具&#xff0c;用于从游戏中提取文本&#xff0c;特别适用于Windows操作系统。 项目地址: https://gitcode.com/gh_mirrors/te/Textra…

作者头像 李华