Ubuntu下VSCode多文件编译,Cmake,json调试配置笔记

编程小白跟着b站视频手把手教会VSCode的C++环境搭建,多文件编译,Cmake,json调试配置( Windows篇)在Ubuntu下的VSCode进行多文件编译,Cmake,json调试配置的一点笔记

1.前期的环境配置在装Ubuntu的时候就直接装了,这一部分略过

2.简单的单文件编译步骤:

(1)新建文件:先新建文件夹(VSCode是以文件夹为项目打开)→资源管理器→右键,新建文件,直接写上文件名.文件类型,这里设定为main.cpp

#include 


using namespace std;

void swap(int &a,int &b)
{
    int temp;
    temp = a;
    a = b;
    b = temp;
 }

int main(int argc,char **argv)
{
    int val1 = 10;
    int val2 = 20;
    cout << "before swap:" << endl;
    cout << "val1=" << val1 << endl;
    cout << "val2=" << val2 << endl;
    swap(val1,val2);
    cout << "After swap:" << endl;
    cout << "val1=" << val1 << endl;
    cout << "val2=" << val2 << endl;

    return 0; 
}

(2)g++编译,Ubuntu命令:

g++ main.cpp

会生成一个随机的.out文件

g++ -g main.cpp -o my_single_swap

指定生成的.out文件的名字为my_single_swap

(3)json文件配置:Ubuntu和windows不一样,Ubuntu需要自己编辑,这一部分参考在ubuntu系统下的vscode环境中配置C++环境

将原本的launch.json文件内容全部删除替换成以下内容

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/${fileBasenameNoExtension}.out",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "preLaunchTask": "build",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

然后运行→启动调试(也可以直接F5)→会跳出找不到任务'build'的窗口,点击配置任务→点击第一个使用模板创建tasks.json文件→然后选择最后一个Others运行任意外部命令的实例,就会生成一个tasks.json文件

同样将tasks.json里面的代码全部删除,换成如下内容

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "shell",
            "command": "g++",
            "args": ["-g", "${file}", "-std=c++11", "-o", "${fileBasenameNoExtension}.out"]
        }
     ]
}


然后点击main.cpp就可以进行调试(记住调试前要先保存文件,不然就会报错)

2.多文件编译:

(1)新建文件

main.cpp

#include 
#include "swap.h"

using namespace std;



int main(int argc,char **argv)
{
    int val1 = 10;
    int val2 = 20;
    cout << "before swap:" << endl;
    cout << "val1=" << val1 << endl;
    cout << "val2=" << val2 << endl;
    swap(val1,val2);
    cout << "After swap:" << endl;
    cout << "val1=" << val1 << endl;
    cout << "val2=" << val2 << endl;

    return 0; 
}

swap.h

void Swap(int &a,int &b);

swap.cpp

#include "swap.h"
void Swap(int &a,int &b)
{
    int temp;
    temp = a;
    a = b;
    b = temp;
 }

同时编译两个.cpp文件

g++ -g main.cpp swap.cpp

自己设置输出文件名

g++ -g main.cpp swap.cpp -o my_multi_swap

(2)配置.json文件,和上述一样

(3)Cmake编译:生成极为复杂的makefile

新建CMakeLists.txt (教程写了一个最简单的cmake指令)

project(MYSWAP)

add_executable(my_cmake_swap main.cpp swap.cpp)

ctrl+shift+p,选择Cmake:Configure

 选择GCC 的编译器,不同版本号可能不一样,教程是8.1,我是8.4

 之后会建成一个build文件夹

这里的build文件也可以自己新建,代码如下

mksir build

进入终端

cd build
cmake ..

这里注意

出现

 说明所有步骤都正常

然后进行make编译,windows系统下是

mingw32-make.exe

Ubuntu下是

make

出现

 即为成功,会在build文件夹中出现

Ubuntu下VSCode多文件编译,Cmake,json调试配置笔记_第1张图片

 重新配置launch.json文件,将文件中“program”路径从如下内容

 改为

 然后对main.cpp文件重新调试,调试成功生成可执行文件的流程就结束了。

补充:

1.如果此时修改main.cpp的内容,此时调试内容仍然是修改之前的代码,得重新生成可执行文件才可以执行新代码

2.一些对应关系: 

Ubuntu下VSCode多文件编译,Cmake,json调试配置笔记_第2张图片

 这时候如果修改main.cpp内容,就可以直接进行调试,不用先编译再调试

3.将这一部分命令直接编入task.json中,就不用每次修改后重新编译Ubuntu下VSCode多文件编译,Cmake,json调试配置笔记_第3张图片

修改后的task.json文件:windows版:

Ubuntu下VSCode多文件编译,Cmake,json调试配置笔记_第4张图片

Ubuntu:

Ubuntu下VSCode多文件编译,Cmake,json调试配置笔记_第5张图片

你可能感兴趣的:(vscode,ubuntu)