1.前言

由于最近在学习Linux应用编程,在虚拟机中使用vim进行代码编辑,以及使用命令界面的GDB进行调试显得十分不便,于是想着能够构建图形化的代码编辑与调试环境,在踩了无数坑之后终于是构建出可用的图形化代码环境。在这里感谢@xiaobing1016  大佬的视频教程,以下教程均基于大佬的教程进行构筑。

视频地址:基于VSCode和CMake实现C/C++开发 | Linux篇_哔哩哔哩_bilibili

2.软件准备

VMware® Workstation 16 Pro:16.1.0 build-17198959

Vscode 1.78.2 windows版下载地址:Visual Studio Code - Code Editing. Redefined

需要的配置文件下载地址:

链接:https://pan.baidu.com/s/1s48dxy4_QETNiZQRrnueqQ 
提取码:f3lu

2.1 ubuntu软件准备

本文章默认读者已会ubuntu的基本操作,且ubuntu与windows能够平通所以ubuntu的安装过程不再赘述。

1.安装软件

命令: sudo apt-get update               //更新软件列表

            sudo apt-get install gcc          //安装gcc

            sudo apt-get install g++         //安装g++

            sudo apt-get install gdb         //安装gdb调试器

            sudo apt-get install make      //安装make工具

            sudo apt-get install cmake    //安装cmake工具,用于自动生成makefile

            sudo apt-get install ssh         //ssh工具,用于vscode连接ubuntu

            sudo apt-get install openssh-client    //ssh客户端

            sudo apt-get install openssh-server  //ssh服务器

            sudo apt-get install net-tools             //网络管理工具,用于查看ubuntu的IP地址

2.安装完以下软件后,验证windows能否连接ubuntu

ifconfig                    //该命令查看ubuntu的IP地址

 

在终端中执行以下命令:

ssh xxx.xxx.xxx.xxx @username

例如:ssh 192.168.50.199 @xsword 

另外:   ssh 192.168.50.199       //不指定用户登录也可以

输入密码以后,见如下结果则连接成功:

 

2.2 Windows下Vscode环境准备

默认读者已安装vscode。在vscode下安装以下拓展:

C/C++

C/C++ Extension Pack
CMake

CMake Tools

Makefiles Tools

.Code Runn

2.3 使用vscode连接ubuntu

1.安装remote-ssh后,可以见到vscode侧边栏多了一个图标。点击这个图标

 2.新建远程连接

输了密码以后 选择配置文件

Host 192.168.50.199

  HostName 192.168.50.199

  User xsword

点击这个箭头,输入密码即可连接。

 3.Vscode配置文件

3.1.在ubuntu中新建一个work文件夹,文件夹中存放着每一个工程文件

3.2.在work文件夹中新建一个temp的文件夹,再建立如下的子文件夹如下图所示

3.3.在.vscode中新建如下文件

c_cpp_properties.json

launch.json

settings.json

tasks.json

每一个文件的内容如下:

c_cpp_properties.json:

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**"     //文件包含
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "c11",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "linux-gcc-x64"
        }
    ],
    "version": 4
}

launch.json

{
    "configurations": [
    {
        "name": "(gdb) 启动",
        "type": "cppdbg",
        "request": "launch",
        "program": "${workspaceFolder}/build/main",  //生成的可执行文件的路径
        "args": [],
        "stopAtEntry": false,
        "cwd": "${workspaceFolder}",    //这里就相当于是工程文件的根目录
        "environment": [],
        "externalConsole": false,
        "MIMode": "gdb",
        "setupCommands": [
            {
                "description": "为 gdb 启用整齐打印",
                "text": "-enable-pretty-printing",
                "ignoreFailures": true
            },
            {
                "description": "将反汇编风格设置为 Intel",
                "text": "-gdb-set disassembly-flavor intel",
                "ignoreFailures": true
            }
        ],
        "miDebuggerPath": "/usr/bin/gdb",
        "preLaunchTask": "Build"
    }
    ]
}

settings.json

{
    "cmake.sourceDirectory": "${workspaceFolder}/main",     //可执行文件的路径
    "files.associations": {
        "stdio.h": "c"
    }
}

tasks.json

{
    "version": "2.0.0",
    "options": {
        "cwd": "${workspaceFolder}/build"   //这里放的是可执行文件的路径
    },
    "tasks": [
        {
            "type": "shell",
            "label": "cmake",
            "command": "cmake",
            "args": [
                ".."
            ]
                
        },
        {
            "label": "make",
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "command": "make",
            "args": [

            ]
        },
        {
            "label": "Build",
            "dependsOrder": "sequence",
            "dependsOn": [
                "cmake",
                "make"
            ]
        }
    ],
}

最后将包含这个文件夹的work文件夹放到ubuntu的桌面,当然读者也可以自定义地址

4.4.最后在vscode中打开work下的工程文件

!!!!!!!!!注意,不要直接打开work文件,否则配置文件失效!!!!!!!!!!!

最后将下列的文件新建出来

 这里为了方便直接给出测试函数以及CMakeLists.txt文件、

list.h

#ifndef  _LIST_H

#define  _LIST_H

void dayin();


 

#endif

list.c

#include "list.h"

#include <stdio.h>

void dayin()

{

    printf("测试");

}

main.c

#include <stdio.h>

#include "list.h"

int main()

{

    printf("函数运行成功\n");

    dayin();

}

CMakeLists.txt

cmake_minimum_required(VERSION 3.0)                   #设置cmake版本

project(MAIN)                                         #设置工程名

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}"  -Wall)      #开启gcc告警

set(CMAKE_BUILD_TYPE Debug)                           #调试信息

include_directories(${CMAKE_SOURCE_DIR}/inc)          #.c文件的文件夹

add_executable(main main.c src/list.c)                #包含的文件,如果在inc文件夹下,需要包含路径

4.工程的编译以及注意事项

4.1.注意事项

当以上步骤完成后,打开终端,cd到文件夹下的build文件

 执行以下命令,最终build文件夹下生成了makefile文件

cmake ..

 执行

make

 最后文件编译成功了。

注意:上述的cmake操作,仅需在第一次复制该文件时进行操作,以后无需再进行。

4.2 调试

点击右上角的调试按键,选择gdb,就可以愉快的调试啦。

笔者为大家提供这个配置好的文件,链接如下:

链接:https://pan.baidu.com/s/1s48dxy4_QETNiZQRrnueqQ 
提取码:f3lu

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐