一、通用准备
- 安装VScode
- 安装C/C++扩展(Ctrl+Shift+X)
- 如果要用中文可以下载Chinese插件
二、Ubuntu安装VScode
- 终端用下面命令确定gcc已经安装并配置gdb
gcc -v
sudo apt-get update
sudo apt-get install build-essential gdb
其次从官网把VS的安装包下载下来 2. 安装 sudo dpkg -i code_1.37.0-1565227985_amd64.deb
- 卸载
dpkg -r 不删除配置文件的卸载方式
dpkg -P 删除配置文件的卸载方式
- 使用umake来安装卸载VScode
sudo umake ide visual-studio-code
cd ~/.config
sudo rm -rf ./Code/
sudo chown -R 你的用户名 ~/.vscode/extensions
umake ide visual-studio-code --remove
三、Ubuntu卸载VScode的方法
Ubuntu不像Windows可以直接在控制面版中卸载软,因为都是文件组织的。 所以在删除时需要将对应文件删除。首先找到所有文件夹,再分别删除
- 查看该软件的安装位置:
sudo find . -iname "*clion*"
whereis clion
- 卸载vscode的方法有很多,选其中之一即可。具体如下:
(1) 通过 apt-get 方式安装的,删除时会提示确认:
$ sudo apt-get remove code # 只是卸载,保留配置
或
$ sudo apt-get --purge remove code # 彻底清除,包括配置
或
$ sudo apt-get purge code # 也是彻底清除
(2) 通过 dpkg 方式安装的,删除时将没有确认提示:
$ sudo dpkg -r code # 只是卸载,保留配置
或
$ sudo dpkg --remove code # 只是卸载,保留配置
或
$ sudo dpkg -p code # 彻底清除,包括配置
或
$ sudo dpkg --purge code # 彻底清除,包括配置
- 删除?/中的缓存。使用命令:
sudo rm -rf ~/.Clion*
四、Ubuntu配置VScode运行C代码
- 创建cpp工程
mkdir cppCode
cd cppCode
code .
-
CMake工具扩展可以为基本CMake项目创建文件。打开命令选项板(Ctrl+Shift+P)并运行CMake:Quick Start命令 运行过程会让你输入工程名称 -
选择Executable作为项目类型,以创建包含基本main()函数的基本源文件(main.cpp)。 如果您想创建一个基本的源文件和头文件,您应该选择Library。 -
打开命令选项板(Ctrl+Shift+P)并运行CMake:选择工具包。扩展将自动扫描计算机上的工具包,并创建在系统上找到的编译器列表。
cmake:select a kit
- 配置CMake项目
- 打开命令选项板(Ctrl+Shift+P)并运行CMake:edit User Local CMake Kits命令,编辑cmake-tools-kits.json文件
- 配置构建任务
快捷键shift+ctrl+p搜索全局命令tasks,选择g++ build active file生成配置
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "C/C++: g++ build active file",
"command": "/usr/bin/g++",
"args": ["-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}"],
"options": {
"cwd": "/usr/bin"
},
"problemMatcher": ["$gcc"],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Task generated by Debugger."
}
]
}
command:设置制定要运行的程序,一般为g++
args:用数组的形式,将指定的g++命令行参数传入,必须按照编译器顺序进行制定。本task文件的含义是
label:任务列表中看到的名字,可以任意命名
detail:将在任务列表中作为任务描述的值
修改task.json文件主要修改args部分
使用"${workspaceFolder}/*.cpp" 代替${file} ,这将编译文件夹中所有的CPP文件
使用自定义的名字如helloworld.out代替"${fileDirname}/${fileBasenameNoExtension}"
``
- 配置调试设置
create a launch.json file,任选一项环境生成launch.json
```cpp
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) 启动",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/${fileBasenameNoExtension}.out",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
]
}
]
}
-
选择变体,请打开命令选项板(Ctrl+Shift+P)并运行CMake:select variant命令 变体包含有关如何构建项目的说明。默认情况下,CMake工具扩展提供了四个变体,每个变体对应于默认的构建类型 Debug、Release、MinRelSize和RelWithDebInfo 选择“Debug”以将调试信息包括在生成中。 -
打开命令调色板(Ctrl+Shift+P)并运行CMake:Configure命令来配置您的项目。这将使用您选择的工具包和变体在项目的生成文件夹中生成生成文件。 -
编译项目 打开命令选项板(Ctrl+Shift+P)并运行CMake:Build命令,或从状态栏中选择Build按钮 通过从命令选项板中选择CMake:Set build Target,可以选择要生成的目标。默认情况下,CMake工具构建所有目标。所选目标将出现在Build按钮旁边的状态栏中。
- 代码运行快捷键
运行代码:
Alt+Ctrl+N或右键-Run Code
调试代码
F5
其他说明
- 针对代码一闪而过的问题可以在代码最后加如下代码
system("pause");
- 代码中使用scanf函数,在vscode中无法显示,这是因为没有打开控制台,解决办法:
1.在vscode中点击文件;
2.点击首选项,点击设置;
3.搜索关键词code-runner.runInTerminal,勾选此选项即可。
参考 ubuntu 上vscode使用cmake编译运行c++程序
windows上使用vscode编译C代码主要两个方法,第一个是安装MinGW-w64,其次是使用windows上的linux来编译运行C代码
五、windows使用VScode
-
windwos需要下载MinGW-w64 MinGW-w64官网下载地址 https://sourceforge.net/projects/mingw-w64/files/ -
解压并配置环境变量 在环境变量里配置好MinGW的路径,比如:D:\CodeConfig\mingw64\bin 然后如下图配置好对应的json文件:
输入下面命令判断是否成功
gcc -v
文件配置 tasks.json (制作说明)
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb)c_launch",
"type": "cppdbg",
"request": "launch",
"targetArchitecture": "x64",
"program": "${workspaceFolder}/${fileBasenameNoExtension}.exe",
"miDebuggerPath": "D:/Software/mingw64/bin/gdb.exe",
"MIMode": "gdb",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceRoot}",
"environment": [],
"internalConsoleOptions": "openOnFirstSessionStart",
"externalConsole": true,
"preLaunchTask": "gcc"
}
]
}
launch.json (调试器设置)
{
"version": "2.0.0",
"command": "gcc",
"args": ["-Wall", "-g", "${file}", "-o", "${fileBasenameNoExtension}.exe"],
"echoCommand": true,
"problemMatcher": {
"owner": "cpp",
"fileLocation": ["relative", "${workspaceFolder}"],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
}
{
"version": "0.2.0",
"configurations": [
{
"name": "C++ Launch (GDB)",
"type": "cppdbg",
"request": "launch",
"targetArchitecture": "x86",
"program": "${file}.exe",
"miDebuggerPath": "c:\\MinGW\\bin\\gdb.exe",
"args": [
"blackkitty",
"1221",
"# #"
],
"stopAtEntry": false,
"cwd": "${workspaceRoot}",
"externalConsole": true,
"preLaunchTask": "g++"
}
]
}
参考 用VScode来编写C / C ++代码
六、Windows使用wsl来运行C程序
Windows Subsystem for Linux,是一个 windows 下的 Linux 子系统
- 确定下面的配件已经安装
2. 安装C/C++插件
3. C++ Intellisense
利用Intellisense 代码完成、 linting、调试支持、代码片段和单元测试等 VS Code 功能
4. code runner
5. Remote - WSL (使用windows的wsl进行编译时需要安装该软件)
- windows的配置如下,其实与纯Ubuntu的使用方式差不多
1. 首先需要在Windows下配置好对应的Linux版本,如Ubuntu,此处不做详述
在Ubuntu环境下就是通过执行sudo apt-get update,更新一下包管理器,然后更新一些软件
apt update:只检查,不更新(已安装的软件包是否有可用的更新,给出汇总报告)
用法:sudo apt update
apt upgrade:更新已安装的软件包
用法:sudo apt upgrade 软件包名
2. 然后安装gdb,gcc和g++
sudo apt install build-essential
sudo apt install gdb
3. 在WSL中的命令行并输入以下命令:code .(中间有空格),此步会自动布置WSL中的VSCode环境,
等待片刻之后会在Windows中弹出一个VS Code窗口。在此之后也可以通过VS Code左下角的连接选项
直接连接WSL。
4. 使用wsl编译运行的话,一般把源码存储在wsl的分区中,这样自动配置的json文件才能找到wsl
中安装的gcc和g++,如果是windows下某个硬盘的源代码则需要重新打开窗口,选择模式如下方可使用wsl的环境:
Remote-WSL:Reopen Folder in WSL
5. 创建一个文件夹,里面创建一个C/CPP文件,之后再上面的文件夹下面就能看到下面三个配置json文件(第一个似乎在新版上没看到)
c_cpp_properties.json (编译器路径和IntelliSense设置)
tasks.json (制作说明)
选择Terminal -> Configure Default Build Task -> g++ build active file会生成一个.vscode/tasks.json的配置文件
点击左侧调试按钮可以生成该文件,
targetArchitecture根据自己所需的构架来更改,miDebuggerPath需要按照自己电脑中Mingw-w64的安装目录来更改。
- launch.json配置 (调试器设置)
选择Debug -> Add Configuration -> C++(GDB / LLDB)会生成一个.vscode/launch.json配置文件 快捷键ctrl+shift+p会出现状态栏提示,输入tasks,选择用模板生成文件,然后替换就可以 在Remote-WSL:Reopen Folder in WSL模式下,需要保证你本地磁盘如D盘上源码的json文件用的是gcc而非MinGW的gcc.exe的路径,方可正常运行
{
"version": "0.2.0",
"configurations": [
{
"name": "g++ - Build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++ build active file",
"miDebuggerPath": "/usr/bin/gdb"
}
]
}
关于上面配置的部分讲解
- 按F5运行,会弹出配置C/C++,选择g++ - Build and debug active file
然后就能够运行了
在WSL中完成工作后,可以使用主文件菜单和命令面板(Ctrl + Shift + P)中的“ 关闭远程连接”命令来关闭远程会话。这将重新启动在本地运行的VS Code。
VS快捷键等
一、Visual studio Code 跳转定义返回快捷键
F5: 调试程序
CTRL+F5:运行程序
windows + shift + p 切换屏幕
Ctrl+shift+P,打开相应的json文件
ctrl + P 查找文件
Ctrl + shift + P 显示所有命令
Ctrl + O 打开文件
Ctrl + K Ctrl + O 打开文件夹
Ctrl + R 打开最近的文件
Windows
Alt + ← Navigate back
Alt + → Navigate forward
Mac
Ctrl + - Navigate back
Ctrl + Shift + - Navigate forward
Ubuntu
Ctrl + Alt + - Navigate back
Ctrl + Shift + - Navigate forward
二、VScode插件命令
-
plantuml Alt+D开启预览,开启预览之后,可以实时查看到脚本的输出图 -
ConEmu终端 ConEmu是一款windows平台下的控制台工具,功能超级强大,类似于mac平台下的iTerm2
三、程序中添加外部动态链接库so
在task.json中添加-L和-l
- -l代表所连接的so文件的名字,因为我这里用的是libcalculate.so,连接的时候需要去掉lib和.so。
- -L是代表so文件所在的位置
如在进行多线程代码编译时,在args中添加对应的-l参数来链接多线程库
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++ build active file",
"command": "/usr/bin/g++",
"args": [
"-g",
"${file}",
"-lpthread",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
|