VSCode中使用CMake管理

news/2024/7/8 15:51:12 标签: c语言, c++, visual studio code

使用 CMake 配置 Visual Studio Code (VSCode) 项目是许多 C++ 开发者的常见需求。下面我将详细介绍在 VSCode 中使用 CMake 的步骤和最佳实践。

前提条件

  1. 安装 VSCode:如果还未安装,请先前往 VSCode 下载页面下载安装。

  2. CMake:安装 CMake 工具。可以通过以下链接下载:CMake Downloads

  3. 编译器:为目标平台安装合适的编译器。比如在 Windows 上使用 MinGW 或 MSVC,在 macOS 上使用 Xcode Command Line Tools,在 Linux 上使用 GCC。

安装 VSCode 插件

  1. CMake Tools:在 VSCode 中安装 CMake Tools 插件,帮助管理 CMake 项目。

    打开 VSCode,然后点击左侧的扩展图标(或者按 Ctrl+Shift+X),搜索并安装 CMake Tools 插件。

  2. C++ 插件:同理,安装 C++ 插件,用于代码提示和调试。

创建 CMake 项目

为了展示整个过程,我们假设你有如下的项目结构:

MyProject
├── src
│   └── main.cpp
├── include
│   └── main.h
└── CMakeLists.txt
1. 创建 CMakeLists.txt

MyProject 目录下创建 CMakeLists.txt,内容如下:

cmake_minimum_required(VERSION 3.10)

# 项目信息
project(MyProject)

# 设置 C++ 标准
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)

# 包含目录
include_directories(include)

# 添加可执行文件
add_executable(MyProject src/main.cpp)
2. 创建源文件

src 目录下创建 main.cppinclude 目录下创建 main.h

src/main.cpp

#include <iostream>
#include "main.h"

int main() {
    std::cout << "Hello, CMake with VSCode!" << std::endl;
    return 0;
}

include/main.h

#ifndef MAIN_H
#define MAIN_H

#endif // MAIN_H

配置 VSCode

1. 配置 CMake Tools

打开 VSCode 的命令面板(按 Ctrl+Shift+P),然后输入并选择 CMake: Quick Start 进行初始配置。这个步骤将创建必要的配置文件。

2. 配置调试

创建调试配置文件 .vscode/launch.json,内容如下:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "C++ Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build/MyProject", 
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb", 
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "miDebuggerPath": "/usr/bin/gdb", 
            "preLaunchTask": "build",
            "logging": {
                "moduleLoad": false,
                "trace": false,
                "engineLogging": false,
                "programOutput": true,
                "exceptions": false
            },
            "internalConsoleOptions": "openOnSessionStart"
        }
    ]
}

请根据你的系统修改 miDebuggerPath,Windows 下使用 C:\\path\\to\\gdb.exe,macOS 使用 /usr/bin/lldb

3. 配置任务

创建任务配置文件 .vscode/tasks.json,内容如下:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "shell",
            "command": "cmake",
            "args": [
                "--build",
                "${workspaceFolder}/build"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": [],
            "detail": "Task generated by CMake Tools."
        }
    ]
}
4. 创建 CMake 生成构建文件夹

执行以下命令创建生成构建文件夹:

mkdir -p ${workspaceFolder}/build

在 VSCode 中构建和调试

  1. 构建项目:按 F7 或在命令面板中选择 Tasks: Run Build Task。这将运行 CMake 生成和构建任务,把所有的构建文件放置在 build 目录中。

  2. 调试项目:按 F5 启动调试。此时 VSCode 将使用之前配置好的调试器(如 gdb)来启动你的应用程序,并附加到程序上进行调试。

总结

通过以上步骤,你可以在 VSCode 中高效地使用 CMake 配置和管理你的 C++ 项目。CMake Tools 插件简化了项目配置过程,而 tasks.jsonlaunch.json 则帮助你集成构建和调试工作流。通过这种方式,可以在一个统一的开发环境中进行高效的开发和调试工作。


http://www.niftyadmin.cn/n/5537374.html

相关文章

【Android源码】Gerrit上传Android源码

关于Gerrit的安装参考下面链接 【Android源码】Gerrit安装 要实现上传Android源码&#xff0c;需要经历以下几步&#xff1a; 下载Android代码创建源码仓库创建manifests仓库上传源码其他电脑下载源码 要证明Gerrit中的源码真实可用&#xff0c;肯定是以其他人能真正共享到代…

Linux环境下快速部署Spring Boot应用:高效命令组合实践

概要&#xff1a; 本文旨在介绍一种高效的Linux命令组合&#xff0c;用于简化Spring Boot项目的部署与管理流程。通过结合使用nohup、java -jar、输出重定向以及进程管理命令&#xff0c;我们能够实现Spring Boot应用的快速后台启动及便捷的进程控制&#xff0c;尤其适合于自动…

前端vue使用onlyoffice控件实现word在线编辑、预览(仅列出前端部分需要做的工作,不包含后端部分)

简介 ONLYOFFICE 文档 是一个开源办公套件&#xff0c;包括文本文档、电子表格、演示文稿和可填写表单的编辑器。 它提供以下功能&#xff1a; 创建、编辑和查看文本文档、电子表格、演示文稿和可填写表单&#xff1b; 与其他队友实时协作处理文件。 基于这个控件&#xff0c;…

tapd 与国内外主流的8大项目管理软件大对比

对比Tapd与8大项目管理工具&#xff1a;PingCode、Worktile、Redmine、Teambition、广联达、Jira、禅道、飞书。 Tapd 是腾讯推出的一款敏捷开发管理工具&#xff0c;特别适合那些需要高效协作和快速迭代的敏捷开发团队。它支持多种敏捷方法论&#xff0c;包括Scrum和Kanban&am…

Android C++系列:JNI 调用时缓存字段和方法 ID

在 JNI 去调用 Java 的方法和访问字段时&#xff0c;最先要做的操作就是获得对应的类以及对应的方法 id。 通常我们通过 FindClass 、GetFieldID、GetMethodID 去找到对应的信息也是耗时操作&#xff0c;如果方法被频繁调用&#xff08;特别是像音视频处理时循环的调用JNI方法…

三、数据库系统(考点篇)

1、三级模式一两级映像 内模式&#xff1a;管理如何存储物理的 数据 &#xff0c;对数据的存储方式、优化、存放等。 模式&#xff1a;又称为概念模式&#xff0c; 就是我们通常使用的表这个级别 &#xff0c;根据应用、需求将物理数据划分成一 张张表。 外模式&#xff1a;…

模拟5亿年自然进化史,全新蛋白质大模型ESM3诞生!前Meta老将力作LeCun转赞

模拟5亿年自然进化史&#xff0c;全新蛋白质大模型ESM3诞生&#xff01;前Meta老将力作LeCun转赞。 能抗衡AlphaFold 3的生命科学大模型终于出现了。初创公司Evolutionary Scale AI发布了他们最新的98B参数蛋白质语言模型ESM3。不仅支持序列、结构、功能的all-to-all推理&#…

强化学习的数学原理:蒙特卡洛学习

概述 实际上将之前 policy iteration 当中基于模型的部分只要替换掉不需要模型的部分&#xff0c;就得到了本节课的蒙特卡洛的算法&#xff1b;另外在本门课当中将 value iteration 和 policy iteration 统称为 model-based reinforcement learning&#xff0c;更准确的说应该…