04-vscode搭建cmake的编译环境(代码片段)

越老越顽固 越老越顽固     2023-04-05     622

关键词:

vscode+mingw搭建C/C++环境系列

01.vscode+mingw搭建编译调试环境

02-vscode编译调试单个源文件程序

03-vscode编译调试多个源文件程序

04-vscode搭建cmake的编译环境

文章目录


一、简述

前面的文章中提到过通过修改settings.json文件和tasks.json文件可以完成多个源文件程序编译运行,但是如果源文件较多,每次都手动修改编译参数,那么比较麻烦,所以本文讲述下如何在vscode中使用cmake工程。

二、vscode搭建cmake的编译环境(方法1)

1.配置cmake构建目录(可忽略)

文件–》首选项–》搜索cmake,配置cmake的一些参数和中间文件路径(可不用设置),如下图:cmake的构建目录在当前的工作区的build的目录下。

2.选择cmake的构建套件(gcc)

未配置cmake工程前,

快捷键: shift+alt+p 输入cmake,选择"CMake Quick Start"

选择cmake的构建套件,这里使用的是gcc mingw

配置cmake工程完后,下面会出现配置选项
1:编译选项:Debug、release、RelWithDebugInfo
2:选择的编译器,GCC 还是VC
3:调试程序

3.编写CMakeLists.txt

project(test)

add_executable(test main.cpp add.cpp)

文件结构: build里面存放编译过程中的中间文件,该目录的配置在前面的配置cmake参数

4.启动调试运行

成功构建cmake工程文件后,可点击下面按钮,进行运行调试

三、vscode搭建cmake的编译环境(方法2)

1.cmake构建说明

  • 官网上下载一个cmake程序,将安装的cmake的bin目录添加到PATH的环境变量
  • 编写简单的CMakeLists.txt
project(test)
add_executable(main main.cpp add.cpp)
  • 多文件编译调试
mkdir build   		 //创建build目录
cd    build   		 //进入build目录
					 //如果电脑上已经安装了vs,cmake可能会调用微软的MSVC的编译器,
					 //使用cmake -G "MinGW Makefiles" ../代替 cmake ../
					 //cmake主要寻找CMakeLists.txt文件
cmake  ../   		//根据CMakeLists.txt文件生成MakeFile文件
mingw32-make.exe    //根据MakeFile文件编译成可执行的运行程序
  • 配置launch.json文件:调试时配置
  • 配置tasks.json文件: 调试之前的构建配置

2.配置launch.json文件

  • 创建launch.json文件

    添加调试配置:可以选择 调试程序或者附加到某个进程上调试

    launch.json

    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
     
        
            "name": "main", // 配置名称,将会在启动配置的下拉菜单中显示  
            "type": "cppdbg", // 配置类型,这里只能为cppdbg  
            "request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)  
            "program": "$workspaceFolder/build/main.exe", // 将要进行调试的程序的路径  
            "args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可  
            "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false  
            "cwd": "$workspaceFolder", // 调试程序时的工作目录,一般为$workspaceFolder即代码所在目录  
            "environment": [],
            "externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台  
            "MIMode": "gdb",
            "miDebuggerPath": "C:\\\\Users\\\\Admin\\\\AppData\\\\Local\\\\Programs\\\\mingw64\\\\bin\\\\gdb.exe", 
            // miDebugger的路径,注意这里要与MinGw的路径对应  
            "setupCommands": [
                
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                
            ],
            "preLaunchTask": "build", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc  
        
    ]

主要参数说明:

  • program:要调试的程序的全路径名称
  • args:调试时传入的命令行参数
  • “cwd”: “$workspaceFolder”:调试时进入到当前的工作目录
  • miDebuggerPath:使用的调试器的全路径
  • preLaunchTask:表示调试前需要做的任务操作,"preLaunchTask"中的"build"必须要和tasks.json文件中的label的Value对应,否则在执行调试的时候,无法确认preLaunchTask需要执行什么操作

3.配置tasks.json文件

如图所示:在启动调试之前,执行launch.json文件中的preLaunchTask的build时,vscode会去查找对应的tasks.json文件中label为"build",而tasks.json中的build又依赖标签cmake和标签make的操作,

tasks.json


    "tasks": [
        
          "type":"shell",
          "label": "cmake",
          "command":"cmake",
          "args": [
            "../"
          ],
    
        ,
        
          "label": "make",
          "command":"mingw32-make",
          "args": [

          ],
        ,
        
            "label": "build",
            "dependsOn":[
                "cmake",
                "make"
            ]
        ,
    ],
    "version": "2.0.0",
    "options": 
      "cwd": "$fileDirname/build"
  ,

  • “label”: “cmake”: 使用命令cmake,根据CMakeLists.txt创建MakeFile文件
  • “label”: “make”: 使用命令mingw32-make,根据MakeFile生成可执行的程序
    上述tasks.json文件,表示在每次调试之前都重新构建一次应用程序

4.配置settings.json文件


    "code-runner.executorMap": 

        "javascript": "node",
        "java": "cd $dir && javac $fileName && java $fileNameWithoutExt",
        "c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
        "cpp": "cd $dir/build && cmake ../ && mingw32-make &&  $dir/build/fileNameWithoutExt",
    

将settings.json文件原本cpp编译命令里面的g++,修改为cmake构建工程。

5.启动调试运行

使用vscode里面的调试运行按钮,
Run Code: 依赖settings.json
调试C/C++文件: 依赖launch.json和tasks.json文件

vscode搭建docker环境(代码片段)

...云开源镜像站前言本环境通过使用VMware在Ubuntu20.04下通过VScode搭建docker环境,可通过远程连接容器进行开发。(仅作参考)一、环境准备VMware15pro,Ubuntu20.04,VScode(Linux版本)虚拟机搭建过程略。二、搭建步骤1.安装docker官方安... 查看详情

测试驱动开发002:vscode+cmake+unity环境搭建(代码片段)

...对《测试驱动的嵌入式C语言开发》第二章的实践。搭建VSCode这部分参考博文《基于Windows的VSCodeC/C++编译环境搭建》。安装CMake安装CMake,在官网下载最新安装包。安装时选择对所有用户添加CMake到系统PATH。安装VSCode插件... 查看详情

c/c++开发,linux下opencv+gcc+cmake编译环境搭建(代码片段)

目录一、源码下载二、源码编译       2.1OpenCV源码下载       2.2cmake安装(非必要)        2.3opencv安装依赖及支持模块查看       2.4安装pkgconfig包       2.5安装opencv依赖包       2.6真正安装opencv包开始    ... 查看详情

vscodec++和cmake环境搭建(formacos)(代码片段)

软件安装VSCode直接去官网下载即可!然后安装C/C++和CMake,CMakeTools插件:编译报错在执行cmake编译的时候报错:BadCMakeexecutable“”.Isitinstalledorsettingscontainthecorrectpath(cmake.cmakePath)?这时候需要我们去下载CMakeÿ... 查看详情

vscode搭建docker环境

...云开源镜像站前言本环境通过使用VMware在Ubuntu20.04下通过VScode搭建docker环境,可通过远程连接容器进行开发。(仅作参考)一、环境准备VMware15pro,Ubuntu20.04,VScode(Linux版本)虚拟机搭建 查看详情

测试驱动的嵌入式开发002:vscode+cmake+unity环境搭建(代码片段)

...对《测试驱动的嵌入式C语言开发》第二章的实践。搭建VSCode这部分参考博文《基于Windows的VSCodeC/C++编译环境搭建》。安装CMake安装CMake,在官网下载最新安装包。安装时选择对所有用户添加CMake到系统PATH。安装VSCode插件... 查看详情

测试驱动的嵌入式开发002:vscode+cmake+unity环境搭建(代码片段)

...对《测试驱动的嵌入式C语言开发》第二章的实践。搭建VSCode这部分参考博文《基于Windows的VSCodeC/C++编译环境搭建》。安装CMake安装CMake,在官网下载最新安装包。安装时选择对所有用户添加CMake到系统PATH。安装VSCode插件... 查看详情

maceos环境搭建(代码片段)

...文档,说可以跑通一个独立测试的节点了。这周尝试自行搭建了一下,由于自己不完全做mac下的开发,且这玩意是C写的,所以make起来遇到不少坑,记录下来。附完整踩坑、填坑记录。1.搭建环境在mac下大家应该都用brew来管理包... 查看详情

搭建llvm学习环境(代码片段)

1.下载llvmgitclonehttps://github.com/llvm/llvm-project.git因为国内网络的原因,clone的时候没有反应,可以多此Ctrl+C重新clone2.下载安装cmake注意:下载的cmake版本必须是3.13.4及以上的,否则你后面编译llvm会报下面的错误CMak... 查看详情

cmake快速入门(代码片段)

...录CMake简介什么是CMake?优缺点编译流程CMake实战环境搭建安装CMake安装示例项目编译单个源文件编译多个源文件单个目录下的多个源文件多个目录下的多个源文件导入外部库本地导入(find_package)外部导入(FetchCon... 查看详情

自动驾驶模拟软件carla---环境搭建和编译(代码片段)

安装1.源码编译1.1安装需求x64系统30-50GB内存GPU4GB显存1.2必须安装软件cmake—打包交叉编译Git—python—3.6.5(原本的电脑的版本)Make—(已下载,已安装)(以上都需添加到环境变量中)1.3安装visualstudio... 查看详情

测试驱动的嵌入式开发001:vscode+cmake+cpputest环境搭建(代码片段)

...地来运行这些测试用例,而不是在目标平台上。搭建VSCode这部分参考博文《基于Windows的VSCodeC/C++编译环境搭建》。安装CMake安装CMake,在官网下载最新安装包。安装时选择对所有用户添加CMake到系统PATH。安装VSCode插... 查看详情

测试驱动的嵌入式开发001:vscode+cmake+cpputest环境搭建(代码片段)

...地来运行这些测试用例,而不是在目标平台上。搭建VSCode这部分参考博文《基于Windows的VSCodeC/C++编译环境搭建》。安装CMake安装CMake,在官网下载最新安装包。安装时选择对所有用户添加CMake到系统PATH。安装VSCode插... 查看详情

在ubuntu下将pytorch模型部署到c++(环境搭建)(代码片段)

环境搭建vscodec++环境部署cmake编译器clang安装libtorch安装cudnn安装opencv安装及编译本文总结记录了在将lightweight-openpose的pytorch网络模型部署到c++的过程以及遇到的一些问题,如有错误敬请指正vscodec++环境部署cm... 查看详情

opengl01搭建opgl环境

*GLFW+GLEW环境。工具:GLFW库(下载)GLEW库cMake软件(下载)用cMake编译GLFW和GLEW成vs工程文件包,运行得到编译后文件。在编译后文件夹中找到各个必需文件,添加到vs工程属性中,如下图(具体路径自定义):  查看详情

esp-c3入门2.clion+idf开发环境搭建(代码片段)

ESP-C3入门2.Clion+IDF开发环境搭建一、准备工作二、Clion配置过程1.使用idf.py命令创建一个范例工程2.使用Clion打开项目,修改CMakeLists.txt3.设置交叉编译工具链4.设置CMake5.对cmake一些路径进行修改。三、编译及烧录1.编译2.烧录3... 查看详情

windows系统ollvm+ndk混淆编译环境搭建(代码片段)

 一、环境搭建:  系统:win10_X64  ndk版本:ndk-r12b(ndk-r12b后续版本也适用)  cmake-3.9.1-win64-x64.msi 用于针对不同编译器生成源代码构建文件,如使用VS则生成(.sln)等VS配置文件,如果使用gcc则生成(Makefile)  mi... 查看详情

使用cmake进行交叉编译(代码片段)

...应用这些cmake管理的项目到嵌入式环境中,必然涉及交叉编译的问题。这些项目交叉编译,主要是设置一些环境变量。这些设定可以写成一个.cmake文件,1)需要交叉编译时include,2)或者直接把这些配 查看详情