news 2026/4/22 16:37:17

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/4/18 18:42:11

智能设计革命:如何用自然语言命令生成工业级CAD图纸

智能设计革命&#xff1a;如何用自然语言命令生成工业级CAD图纸 【免费下载链接】text-to-cad-ui A lightweight UI for interfacing with the Zoo text-to-cad API, built with SvelteKit. 项目地址: https://gitcode.com/gh_mirrors/te/text-to-cad-ui 在数字化设计浪…

作者头像 李华
网站建设 2026/4/2 2:13:47

2026毕设ssm+vue健康健身综合网站论文+程序

本系统&#xff08;程序源码&#xff09;带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、选题背景 随着我国全民健身战略的持续推进&#xff0c;商业健身俱乐部数量近三年以年均 18.7% 的速度增长&#xff0c;但行业普遍面临“…

作者头像 李华
网站建设 2026/4/19 14:59:59

跨平台下载工具2026年最佳选择:B站资源一键获取全攻略

跨平台下载工具2026年最佳选择&#xff1a;B站资源一键获取全攻略 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱&#xff0c;支持视频、音乐、番剧、课程下载……持续更新 项目地址: https://gitcode.com/GitHub_Trending/bilit/Bili…

作者头像 李华
网站建设 2026/4/1 23:17:04

springboot基于web的数学库组卷系统设计开发实现

背景分析教育信息化与在线学习的快速发展对智能组卷系统提出更高要求。传统人工组卷效率低、难度匹配不精准&#xff0c;尤其在数学学科中公式编辑、题型多样性等问题突出。SpringBoot作为现代化Java框架&#xff0c;结合Web技术可高效解决此类需求。技术实现意义采用SpringBoo…

作者头像 李华
网站建设 2026/4/17 17:30:47

终极网络调试指南:nc.exe完整使用教程

终极网络调试指南&#xff1a;nc.exe完整使用教程 【免费下载链接】nc.exe Netcat for windows 32/64 bit 项目地址: https://gitcode.com/gh_mirrors/nc/nc.exe 作为一名网络工程师或系统管理员&#xff0c;在日常工作中经常会遇到各种网络连接问题。从简单的端口测试到…

作者头像 李华