基于ubuntu 18.04 与Vscode的linux C/C++开发环境(懒人包)
由于最近在学习Linux应用编程,在虚拟机中使用vim进行代码编辑,以及使用命令界面的GDB进行调试显得十分不便,于是想着能够构建图形化的代码编辑与调试环境,在踩了无数坑之后终于是构建出可用的图形化代码环境。大佬的视频教程,以下教程均基于大佬的教程进行构筑。视频地址:基于VSCode和CMake实现C/C++开发 | Linux篇_哔哩哔哩_bilibili!!!!!!!!!注意,不要直接打开wo
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
CMakeCMake 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
更多推荐




所有评论(0)