• VSCode:使用CMakeLists.txt构建C++项目


    vscode配置

    插件:

    • CMake插件主要功能是CMake语法高亮、自动补全
    • CMake Tools的功能主要是结合VSCode IDE使用CMake这个工具,比如生成CMake项目、构建CMake项目等
    • CMake Tools Helper

    CMake工具本身还是要下载到本地,并且配置环境变量。

    项目结构

    包括6部分:build文件夹、include文件夹、src文件夹、lib文件夹、bin文件夹和CMakeLists.txt。

    在这里插入图片描述

    编译

    基本配置

    首先安装VSCode插件CMake和CMake Tools

    新建CMake项目

    • Ctrl+Shift+p打开VSCode的指令面板,然后输入cmake:q,VSCode会根据输入自动提示,然后选择CMake: Quick Start

    在这里插入图片描述

    • 然后选择适合你的编译器。这里我们选择GCC7.4.0:
      在这里插入图片描述

    • 然后根据提示输入项目名称:

    在这里插入图片描述

    • 然后选择该项目是创建库还是可执行文件,这里我们选择可执行文件Executable:

    在这里插入图片描述

    • 然后VSCode就会为你生成一个CMake项目。如下所示:
      • build文件夹是cmake指令的输出文件夹
      • 默认生成的CMakeLists.txt文件
      • 默认生成的main.cpp文件
      • 其他的文件夹比如include文件夹、src文件夹、bin文件夹等自己建立就行。
        在这里插入图片描述

    我们可以看到CMakeLists.txt文件中的内容,如下:

    project(exer VERSION 0.1.0)    #项目名字和版本
    
    include(CTest)            #包含测试框架,我们可以不用
    enable_testing()
    
    add_executable(exer main.cpp)       #添加源文件
    
    set(CPACK_PROJECT_NAME ${PROJECT_NAME})
    set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
    include(CPack)
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    将CMakeLists.txt修改如下:

    # CMake 最低版本号要求
    cmake_minimum_required(VERSION 3.0.0)
     
    # 项目信息
    project(test1 VERSION 0.1.0)
     
    #设置exe输出目录
    set(EXECUTABLE_OUTPUT_PATH "${PROJECT_SOURCE_DIR}/bin")  
     
    # 查找当前目录下的所有源文件
    # 并将名称保存到 DIR_SRCS 变量
    aux_source_directory(. DIR_SRCS)
     
    # 指定生成目标
    add_executable(Demo ${DIR_SRCS})
    #add_executable(${PROJECT_NAME} main.cpp)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    在“test1[test1.exe]”上,鼠标右键弹出菜单,选择调试或debug。
    在这里插入图片描述

    编译

    两种方法:

    • 点击底部的Build
      在这里插入图片描述

    • 打开命令板(Ctrl+Shift+P)并运行CMake:Build(输入cmake后VSCode会帮你列出所有支持的命令):

    在这里插入图片描述

    • 或者直接按下快捷键F7。

    设置文件c_cpp_properties.json

    我们按住 ctrl + shift + p,搜索C/C++
    在这里插入图片描述
    我们配置一下编译器路径
    在这里插入图片描述
    更改IntelliSense模式:
    在这里插入图片描述
    然后关闭这个界面,我们会发现CppProject文件夹中多了一个.vscode文件夹,有一个c_cpp_properties.json

    调试

    方法一

    设置好断点,按下快捷键 ctrl + shift + p , 键入: cmake:debug , 程序将执行,并停在断点所在位置。

    或者直接按下快捷键ctrl+F5。

    方法二(不看)

    首先在源码中打上断点:
    在这里插入图片描述
    然后配置调试环境:

    在这里插入图片描述
    这个时候资源管理器下就会生成.vscode文件夹,下面有个launch.json文件
    在这里插入图片描述
    在这里插入图片描述
    把下面一句:

    "program": "输入程序名称,例如 ${workspaceFolder}/a.exe",
    
    • 1

    改成:(根据CMakeLists.txt文件内容,将会在build文件夹下生成result可执行文件)

    "program": "${workspaceFolder}/build/result",
    
    • 1

    然后就可以加断点调试了。

    代码的中文乱码问题

    https://blog.csdn.net/m0_46577050/article/details/127604039

    关于

    选择编译的版本

    • 编译的一共有4个Debug 、Release 、MinRelSize 、RelWithDebInfo。区别在于:
      • Debug:禁用优化并包括调试信息。
      • Release:包括优化,但没有调试信息。
      • MinRelSize :优化尺寸。无调试信息。
      • RelWithDebInfo:优化速度,包括调试信息。
      • 更改方法:要选择变体,请打开命令面板(Ctrl+Shift+P)运行CMake:select var。或者点击下面深色

    在这里插入图片描述

    切换编译工具链

    • 你可以通过以下按钮更换套件工具链即编译器
      在这里插入图片描述

    • 或者是可以通过ctrl+shifl+p,输入CMake:Select a Kit

    • 如果想重新配置本地的编译工具链的安装位置,那么可以打开如下配置

    CMake:Edit user-local CMake kits
    
    • 1

    参考

    • https://blog.csdn.net/jiasike/article/details/107474368
    • https://blog.csdn.net/qq_62094479/article/details/127816434
    • https://blog.csdn.net/hhy321/article/details/120602770
  • 相关阅读:
    基于 SOFAJRaft 实现注册中心
    阅读笔记——A Frustratingly Easy Approach for Entity and Relation Extraction
    行业资讯 | 深圳:BIM法定化,开历史之先河
    【java前端课堂】04_类的继承
    ESP32idf组件中缺少头文件error: mqtt_client.h: No such file or directory
    你可能从未使用过的13个Python特性
    从token中获取用户信息
    Spring Cloud 配置中心多环境配置bootstrap.yml
    Liunx-01Liunx初相识
    幻核退出 “数字藏品有何用”阶段性无解
  • 原文地址:https://blog.csdn.net/zhizhengguan/article/details/128056009