vscode使用CMake Tool插件构建第一个CMake的helloworld工程

本文档详述如何在Linux环境下,利用Visual Studio Code (VSCode) 和 CMakeTools 插件搭建C++开发环境,从安装CMake与gcc/g++,到创建、配置、构建及调试CMake工程的全过程。适用于远程SSH连接Linux虚拟机的开发者。

一、linux环境准备

本机演示环境为:
主机windows11 + vscode
虚拟机安装的是RHEL7.6系统
使用vscode远程ssh连接linux虚拟机。

1.1 CMake安装

CMake在linux上的安装教程,可以参考我的另一篇博文:
《在linux上安装CMake》

1.2 gcc/g++的安装

这一步是可选的。

linux上一般都自带有gcc/g++编译器,不过可能版本比较低,例如我的RHEL7.6中自带的gcc/g++版本是4.8的,版本比较低,对一些新的特性可能不支持。如果想使用更新的gcc/g++版本,可以参考我的另一篇博文:
《Redhat7上安装Red Hat Developer Toolset并自由切换gcc和g++的版本》

二、vscode 插件安装

需要安装2款插件。如果你使用的ssh连接虚拟机,那么可能会提示在remote主机上安装,点击安装便是。

2.1 C++扩展

cpp-extension

2.2 CMake Tool

在扩展中搜索CMake,安装CMake Tools插件,
20221230004455

三、使用CMake构建第一个工程

3.1 创建工程目录

在vscode的终端中,进入你的工作目录,然后使用mkdir创建一个工程文件夹,本示例中叫helloworld,然后cd 进入该目录,使用code . 打开一个新的vscode窗口

[hubing@192 backup]$ mkdir helloworld
[hubing@192 backup]$ cd helloworld
[hubing@192 helloworld]$ code .

20221230005806

此时该helloworld目录下什么都没有。

3.2 使用CMake Tool创建第一个Project

按下Ctrl+Shift+P,执行

CMake: Quick Start

20221230011357

然后会提示你选择一个kit,按需选择即可:

20221230011512

输入project name,按需输入即可:

20221230011745

然后本例中选择创建一个可执行程序:

20221230011919

此时,你便可以看到CMake Tool插件已经为我们创建好了一个简单的工程。在helloworld目录下,多了main.cpp,一个CMakeLists.txt文件,以及一个build目录。

20221230012114

3.3 Configure 第一个project

如果需要切换编译器,或者切换debug/release模式等等,可以通过vscode界面下方的按钮或者ctrl + shift + p进行相应的切换

  • 切换kit
    20221230012536

  • 切换variant
    20221230012630

切换完成后,按下Ctrl+Shift+P 可以重新configure工程。

20221230012923

四、构建工程

所有的都配置好以后,就可以进行build了,可以通过Ctrl+Shift+P输入CMake: Build命令,也可以通过界面下方的build按钮,点击即可。

20221230013424

五、程序调试

可以设置断点,对程序进行调试。

20221230013613

六、执行程序

20221230013722

七、CMake工程说明

关于本例创建的工程的详细说明,请参考我的另一篇博文:
对CMake Tool创建的第一个hello world工程的说明

<think>嗯,用户遇到了VSCodeCMake可执行文件报错的问题,具体是"/snap/bin/cmake"路径错误。需要根据提供的引用资料分析解决方案。 从引用[1]看,用户用snap安装了CMake导致路径问题,终端能运行但VSCode找不到。引用[2][3][4]展示了VSCode配置CMake的标准流程,而引用[5]提到了路径配置的解决方案。核心矛盾在于snap安装的CMake路径不被VSCode识别。 用户可能是个Ubuntu开发者,正在配置C++环境,对CMake有基础认知但不太熟悉开发环境集成。ta提问很精准,直接截图了错误信息,说明有一定技术能力但被环境问题卡住了。情绪可能有些烦躁,毕竟IDE报错很打断工作流。 需要综合三个解决维度: 首先是路径配置问题,引用[1][5]都指向手动指定CMake路径。考虑推荐用户检查VSCode设置里的"cmake.cmakePath"项,建议改成"/snap/bin/cmake"或系统路径如"/usr/bin/cmake"。如果snap路径无效,可能需要用apt重装CMake解除路径依赖。 然后是配置文件优先级问题,引用[4]提到的CMakeLists.txt关键配置要注意版本兼容性。考虑提醒用户检查VERSION不低于3.10,这点在引用[4]的示例里强调过。 最后是环境变量问题,引用[5]的set(CMAKE_PREFIX_PATH)方案值得参考,但更推荐优先用VSCode内置设置解决。如果用户项目涉及Qt等库,再建议在CMakeLists.txt里追加路径配置。 补充排查建议也很重要:让用户确认终端执行which cmake的结果,对照检查VSCode的编译器选择是否一致(引用[3]的流程)。如果用户之前误选过其他kit,重置配置可能更快。 </think>针对VSCodeCMake可执行文件报错问题(如`"/snap/bin/cmake"`路径错误),结合引用资料提供以下解决方案: ### 🔧 解决步骤 1. **检查CMake安装路径** - 终端执行 `which cmake` 获取真实路径(如 `/usr/bin/cmake`) - 对比VSCode错误提示路径(如 `/snap/bin/cmake`),确认路径不一致导致问题[^1] 2. **修改VSCode配置** - 打开VSCode设置(`Ctrl+,` → 搜索 `cmake path`) - 在 **CMake Tools** 插件设置中手动指定路径: ```json "cmake.cmakePath": "/usr/bin/cmake" // 替换为终端查到的路径 ``` - 保存后重启VSCode(关键步骤)[^1][^4] 3. **验证CMakeLists配置** - 确保项目根目录存在 `CMakeLists.txt` 文件 - 基础模板示例(引用[4]): ```cmake cmake_minimum_required(VERSION 3.10) # 版本需匹配 project(hello-world) # 项目名称 add_executable(hello-world main.cpp) # 关联源代码 ``` 4. **特殊路径处理(如Qt开发)** - 若涉及第三方库(如OpenCV/Qt),需显式声明路径(引用[2][5]): ```cmake set(CMAKE_PREFIX_PATH "d:/Qt/QT6.6.0/6.6.1/mingw_64") # 替换为实际路径 find_package(OpenCV REQUIRED) # 调用包管理 ``` ### ️ 注意避坑 1. **Snap安装兼容性问题** - Ubuntu的Snap版CMake可能因沙盒权限导致路径异常,优先使用 `apt` 安装: ```bash sudo apt install cmake # 替换Snap安装 ``` 2. **重置CMake缓存** - 删除项目下的 `build/` 目录 → 重新执行 **CMake: Configure**[^2] 3. **检查编译器套件** - 按 `Ctrl+Shift+P` → 执行 `CMake: Select a Kit` - 选择与终端相同的编译器(如GCC 12.1)[^3] > 💡 **操作示意图**: > 配置路径:`设置 → CMake ToolCMake Path` → 覆盖为正确路径 > 重置项目:`删除build目录 → Ctrl+Shift+P → CMake: Delete Cache and Reconfigure` ### 📚 相关问题 1. **如何解决CMake配置时`OpenCV_FOUND=FALSE`错误?** > 需在`CMakeLists.txt`中显式指定OpenCV路径:`set(OpenCV_DIR "/your/opencv/lib/cmake")`[^2] 2. **VSCode CMake插件无法识别项目类型怎么办?** > 检查`project()`命令是否在首行声明,并执行`CMake: Scan for Kits`更新工具链[^3] 3. **Windows中CMake报错`add_executable target exists`如何解决?** > 删除`build/`目录后重建,确保目标名称唯一性(引用[4]示例中的`hello-world`) 4. **QT开发CMake报错`missing Qt6Config.cmake`如何处理?** > 必须设置`CMAKE_PREFIX_PATH`指向Qt安装目录(如`set(CMAKE_PREFIX_PATH "C:/Qt/6.6.1/mingw_64")`)[^5] > 通过路径修正和配置重置,90%的CMake工具链问题可解决。若仍报错,建议查看`CMake/Build`输出面板的详细日志定位根源[^1][^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

smart_cat

你的鼓励将是我写作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值