CMake工程指南(二):安装配置与开发环境搭建
环境准备在开始使用CMake之前我们需要搭建合适的开发环境。本教程使用以下环境编辑环境Visual Studio Code / Cursor编译环境Ubuntu 24.04 (通过VS Code Remote SSH模式)CMake安装方式一使用系统包管理器安装推荐Ubuntu/Debian系统sudoaptupdatesudoaptinstallcmake验证安装cmake --version预期输出cmake version 3.28.3 CMake suite maintained and supported by Kitware (kitware.com/cmake).版本要求本教程对CMake版本的最低要求是3.18。不同Linux发行版的预装版本Linux发行版版本预装CMake版本Ubuntu LTS22.04 (Jammy)3.22Ubuntu LTS24.04 (Noble)3.28Debian12 (Bookworm)3.22Fedora393.28CentOS Stream93.22Arch Linux滚动更新最新稳定版方式二源码编译安装可选如果需要最新版本或自定义安装# 下载源码wgethttps://cmake.org/files/v3.28/cmake-3.28.3.tar.gztar-zxvf cmake-3.28.3.tar.gzcdcmake-3.28.3# 编译安装./bootstrapmake-j$(nproc)sudomakeinstallVS Code CMake插件安装VS Code的CMake插件提供了强大的开发支持语法高亮和代码补全智能分析和错误检查项目配置和构建支持调试集成安装步骤打开VS Code点击左侧活动栏中的扩展图标CtrlShiftX搜索并安装以下四个插件CMake- 官方CMake插件CMake Tools- 增强的CMake工具支持CMake Language Support- 语言支持和语法高亮CMake IntelliSense- 智能代码提示插件功能详解CMake Tools的主要功能配置管理自动检测和配置CMake项目构建支持一键构建项目调试集成与VS Code调试器无缝集成目标管理选择和构建特定的目标环境变量管理构建时的环境变量Remote SSH开发环境搭建对于需要在远程服务器上开发的项目VS Code Remote SSH提供了完美的解决方案。环境要求本地Windows/macOS/Linux VS Code远程Linux服务器Ubuntu 24.04推荐网络SSH连接配置步骤步骤1安装Remote SSH扩展在VS Code扩展市场搜索 “Remote SSH” 并安装。步骤2配置SSH连接在VS Code中按CtrlShiftP打开命令面板输入Remote-SSH: Connect to Host...选择Add New SSH Host输入SSH连接命令ssh usernameremote-host步骤3连接到远程主机选择配置的SSH主机VS Code会自动在远程主机上安装VS Code Server。Remote SSH架构原理Visual Studio Code Remote SSH扩展的工作原理本地VS Code ←→ SSH连接 ←→ 远程VS Code Server ↓ 远程文件系统操作 ↓ 本地质量的开发体验优势所有操作在远程执行无需文件传输享受完整的VS Code功能IntelliSense、调试等支持复杂的远程开发场景第一个CMake项目让我们创建一个简单的CMake项目来验证环境配置。项目结构my_first_cmake_project/ ├── CMakeLists.txt ├── main.cpp └── build/ # 构建目录自动生成步骤1创建项目目录mkdirmy_first_cmake_projectcdmy_first_cmake_project步骤2编写主程序 (main.cpp)#includeiostreamintmain(){std::coutHello, CMake World!std::endl;std::coutThis is my first CMake project!std::endl;return0;}步骤3创建CMake配置文件 (CMakeLists.txt)# 指定最低CMake版本 cmake_minimum_required(VERSION 3.18) # 定义项目名称和版本 project(MyFirstCMakeProject VERSION 1.0) # 设置C标准 set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) # 创建可执行文件 add_executable(my_app main.cpp)步骤4构建项目方法一命令行方式# 创建构建目录mkdirbuildcdbuild# 配置项目cmake..# 构建项目make方法二VS Code CMake Tools打开项目文件夹VS Code自动检测CMake项目点击底部的构建按钮或按CtrlShiftP→ “CMake: Build”步骤5运行程序./my_app预期输出Hello, CMake World! This is my first CMake project!CMakeLists.txt详解让我们深入了解CMake配置文件的核心组件基本结构cmake_minimum_required(VERSION 3.18) # 指定CMake最低版本 project(MyProject VERSION 1.0) # 定义项目信息 set(CMAKE_CXX_STANDARD 17) # 设置编译标准 add_executable(target sources...) # 定义构建目标常用CMake命令项目配置project(ProjectName VERSION 1.0.0 DESCRIPTION Project description LANGUAGES CXX C )编译选项设置# 设置C标准 set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) # 添加编译选项 add_compile_options(-Wall -Wextra -O2) # 设置构建类型 set(CMAKE_BUILD_TYPE Release) # Debug/Release/MinSizeRel/RelWithDebInfo包含目录# 添加包含目录 include_directories(include) include_directories(/usr/local/include)库链接# 查找系统库 find_package(Threads REQUIRED) # 链接库 target_link_libraries(my_app Threads::Threads)多文件项目示例对于包含多个源文件的项目项目结构multi_file_project/ ├── CMakeLists.txt ├── include/ │ └── utils.h ├── src/ │ ├── main.cpp │ └── utils.cpp └── build/CMakeLists.txtcmake_minimum_required(VERSION 3.18) project(MultiFileProject VERSION 1.0) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) # 包含头文件目录 include_directories(include) # 收集源文件 file(GLOB SOURCES src/*.cpp) # 创建可执行文件 add_executable(my_app ${SOURCES})故障排除常见问题1. CMake版本过低CMake Error: Could not find CMAKE_ROOT !!!解决升级CMake版本sudoaptinstallcmake# 或源码安装最新版本2. 编译器未找到-- The CXX compiler identification is unknown解决安装编译器sudoaptinstallbuild-essential# Ubuntu/Debian3. VS Code插件问题确保安装了所有四个CMake相关插件检查插件是否启用重启VS Code4. Remote SSH连接问题确认SSH服务正在运行sudo systemctl status ssh检查防火墙设置验证SSH密钥或密码配置最佳实践1. 目录结构规范project/ ├── CMakeLists.txt # 主配置文件 ├── cmake/ # 自定义CMake模块 ├── include/ # 头文件 ├── src/ # 源文件 ├── tests/ # 测试文件 ├── docs/ # 文档 └── build/ # 构建目录添加到.gitignore2. 版本管理在项目根目录使用.gitignore忽略构建目录考虑使用Git子模块管理依赖3. 跨平台兼容性使用CMake内置变量而非硬编码路径测试多种编译器和平台总结通过本篇教程你已经掌握了CMake的安装和配置VS Code开发环境的搭建Remote SSH远程开发基本的CMake项目创建CMakeLists.txt的编写常见问题解决方案在下一部分我们将深入探讨包管理、高级特性和最佳实践让你的CMake技能更上一层楼

相关新闻

Flutter 三端应用实战:OpenHarmony 简易文本末尾字符查看器开发指南

Flutter 三端应用实战:OpenHarmony 简易文本末尾字符查看器开发指南

一、为什么需要“简易文本末尾字符查看器”? 在 OpenHarmony 的文本校验、格式检查与趣味探索场景中,“末尾字符”常携带关键信息: 程序员:检查文件路径是否以 / 结尾,URL 是否以 ? 或 # 结束;数据录入员…

2026/7/4 17:40:09 阅读更多 →
智能电子锁低功耗雷达感应人来唤醒、人走熄灭解决方案

智能电子锁低功耗雷达感应人来唤醒、人走熄灭解决方案

智能电子锁低功耗雷达感应人来唤醒、人走熄灭解决方案 下班回家,手里拎着购物袋,怀里抱着孩子,走到家门口还要腾出手来掏钥匙——这个场景你一定不陌生。智能门锁本该解放双手,却因为续航焦虑和响应速度问题,始终无法…

2026/7/4 17:40:48 阅读更多 →
赋能景区高效管理,智慧旅游小程序系统的后台运营

赋能景区高效管理,智慧旅游小程序系统的后台运营

温馨提示:文末有资源获取方式 对于景区运营管理者而言,在提升游客前端体验的同时,如何借助数字化工具有效降低管理成本、提升运营效率、实现数据驱动的科学决策,同样至关重要。一款优秀的智慧旅游景区小程序,其强大之处…

2026/7/3 16:41:54 阅读更多 →

最新新闻

多智能体系统安全控制与责任分配技术解析

多智能体系统安全控制与责任分配技术解析

1. 多智能体系统安全责任分配的核心挑战 在机器人集群、无人机编队等典型多智能体系统中,安全责任分配面临三个维度的核心挑战: 1.1 安全性与自主性的矛盾 传统集中式控制虽然能保证全局安全,但要求所有智能体公开完整状态信息&#xff0c…

2026/7/4 17:41:06 阅读更多 →
深度解析开源抖音下载器:3大技术优势与实战部署指南

深度解析开源抖音下载器:3大技术优势与实战部署指南

深度解析开源抖音下载器:3大技术优势与实战部署指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support…

2026/7/4 17:41:06 阅读更多 →
操作系统级缓存:超越Redis的系统性能优化底层原理与实践

操作系统级缓存:超越Redis的系统性能优化底层原理与实践

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Claude 随心用,限时 5 折。 👉 点击领海量免费额度 大家好,我是专注于技术实战分享的博主。在追求极致性能的路上,我们常常将目光投向 Redis 这类明星缓存中间件…

2026/7/4 17:39:05 阅读更多 →
揭秘evbunpack:高效破解Enigma Virtual Box打包文件的专业工具

揭秘evbunpack:高效破解Enigma Virtual Box打包文件的专业工具

揭秘evbunpack:高效破解Enigma Virtual Box打包文件的专业工具 【免费下载链接】evbunpack Enigma Virtual Box Unpacker / 解包、脱壳工具 项目地址: https://gitcode.com/gh_mirrors/ev/evbunpack 当你在逆向工程或软件分析工作中遇到Enigma Virtual Box打…

2026/7/4 17:37:04 阅读更多 →
跨平台开发实战:从操作系统差异看远程控制软件适配挑战

跨平台开发实战:从操作系统差异看远程控制软件适配挑战

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Claude 随心用,限时 5 折。 👉 点击领海量免费额度 你是不是也经常遇到这样的困惑:手头一台Windows笔记本办公,家里一台Mac Mini当服务器,还有一台L…

2026/7/4 17:35:03 阅读更多 →
基于YOLOv8的字符识别系统开发与实践

基于YOLOv8的字符识别系统开发与实践

1. 项目概述这个基于YOLOv8的字母数字识别检测系统是我最近完成的一个计算机视觉项目。它能够实时检测并识别图像和视频中的36类字符(数字0-9和字母A-Z),在复杂场景下表现出色。相比传统OCR技术,这个系统最大的优势在于能够处理任…

2026/7/4 17:33:03 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻