0. 各种代码编辑器和 IDE 的比较
Atom、、是目前三大跨平台代码编辑器,其他还有clion、、Qt、vim等。
1. 安装(3种方法)
1)从以下位置安装(推荐)
2)从 Code - Mac,Linux 下载.deb 文件,并使用 sudo dpkg -i .42.1-.deb 安装。
3)通过终端命令行安装
sudo add-apt-repository ppa:ubuntu-desktop/ubuntu-make
sudo apt-get update
sudo apt-get install ubuntu-make
umake web visual-studio-code
2. 安装 C/C++ 插件
它只是一个纯文本编辑器(),而不是集成开发环境(IDE),也不包含编译器()。要调试C/C++,需要安装C++插件,可以在左侧栏的扩展()中找到并安装。
3.设置项目文件夹
我的文件夹树是
vscode_test/
└── main.cc
内容
#include
int main() {
std::cout << "hello world !" << std::endl;
return 0;
}
4.配置tasks.json文件(用于编译)
task.json文件相当于一个.sh或者.bat文件,用来记录一系列操作的宏,可以用来设置如何编译文件,如何运行文件,.sh能做的事情几乎都能做。
按ctrl+shift+p打开控制台,进入Tasks:Task,从中选择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": "task1", //你的设置文件名,可随便起
"type": "shell", //运行task的平台,一般是shell
"command": "bash ./build.sh", //普通的shell命令
"args": [],
"group": {
"kind": "build", //设置为build组,这样当你在vscode中执行build命令时,
//就能自动执行"command"中的命令了
"isDefault": true
}
}
]
}
5.配置.json文件(用于调试)
.json文件主要用于设置如何调试。
只需点击左侧边栏的运行和调试图标(Ctrl++D),单击一个.json文件,选择C++(GDB/LLDB),然后选择它即可自动生成一个.json文件。
一般只需要将“”部分改为项目路径下生成的可执行文件即可。
如果调试前需要重新编译,可以添加一个新的“”,并将里面的内容改为tasks.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}/bin/hello_world", //只改这里
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "task1" //可以新增一条
}
]
}
6.编译调试(3种编译方法)
1)使用 g++ 编译
在项目目录下新建build.sh
build.sh的内容:
#!/bin/bash
if [ ! -d "bin" ]; then
mkdir bin
fi
g++ main.cc -g -o ./bin/hello_world #默认为release模式,-g表示debud模式,如果编译c程序,g++改成gcc
单编译的时候,按快捷键ctrl+shift+b,编译完成后会在bin目录下生成可执行文件。
编译调试的时候,先设置一个断点(点击代码行号左侧会出现一个小红点),然后按F5就可以开始编译调试了。
整个过程描述:
按F5 => 运行.json => 由于设置“”:“task1”,所以先运行tasks.json中的task1 => 运行build.sh => 调用g++编译成可执行文件 => 开始调试.json中指定的可执行文件
2)通过cmake编译
在项目目录下创建build.sh和.txt
build.sh的内容:
#!/bin/bash
if [ ! -d "build" ]; then
mkdir build
else
rm -rf build/*
fi
cd build
Local_Dir=$(cd "$(dirname "$0")"; pwd)
echo "Now work at Dir:$Local_Dir"
cmake ..
make
.txt内容:
cmake_minimum_required(VERSION 2.8)
project(hello_world)
set(CMAKE_BUILD_TYPE "Debug") # 默认是Release模式,设置为Debug才能调试
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) # 设置可执行文件的输出目录
add_executable(hello_world main.cc)
按F5开始编译和调试。
(另外还可以通过安装CMake和CMake Tools扩展进行编译和调试)
整个过程描述:
按F5 => 运行.json => 由于设置“”:“task1”,所以先运行tasks.json中的task1 => 运行build.sh => 调用cmake并根据.txt文件编译出可执行文件=> 开始调试.json中指定的可执行文件。
3)通过bazel编译
在项目目录下新建build.sh(该文件所在目录为工作区),在目录下新建BUILD(该文件所在文件夹为包)
build.sh的内容:
#!/bin/bash
bazel build ... --compilation_mode=dbg # release设置为--compilation_mode=opt
构建内容:
cc_binary(
name = "hello_world",
srcs = ["main.cc"],
)
.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}/bazel-bin/hello_world/hello_world", //只改这里
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "task1" //可以新增一条
}
]
}
按F5开始编译和调试。
整个过程描述:
按F5 => 运行.json => 由于设置“”:“task1”,所以先运行tasks.json中的task1 => 运行build.sh => 调用bazel并根据BUILD文件编译出可执行文件 => 开始调试.json中指定的可执行文件。
编译后,工作区中生成四个文件夹:bazel-bin,bazel-out,bazel-,bazel-。
bazel clean --expunge # 清除编译产生的文件
7.用于远程开发:
需要安装一个插件,安装完成后点击左下角绿色图标,选择-SSH: to Host…,输入user@host,回车,输入密码,回车,打开远程机器上的项目目录,就可以同步远程机器上的代码,进行远程同步开发调试。
配置免密码登录
通过配置免密码登录,可以避免每次打开远程连接时都要重复输入密码。
a)在本地机器上生成公钥
ssh-keygen
一直按回车,生成.pub文件
b)配置远程服务器
检查远程机器的~/.ssh目录下是否有名为的文件,如果没有,则创建一个,然后把刚刚生成的.pub文件的内容复制粘贴到该文件中,并修改文件权限。
chmod -R 600 authorized_keys
这样就完成了免密码登录的配置。
8.常用快捷键
Ctrl + 单击:跳转到变量或函数的声明或定义
Ctrl + Alt + -:后退(跳回)
Ctrl + Shift + -:
Ctrl + /:注释/取消注释
Ctrl + f:查找
将制表符缩进设置为 2:文件->-> / 使用 / 制表符大小
提示:当你点击文件 a.txt 时,状态栏中的文件名是斜体,当你打开另一个文件 b.txt 时,a.txt 会被 b.txt 取代。你可以双击状态栏中斜体的 a.txt 文件名,它就会变成非斜体,也就是固定下来了。此时你再点击 b.txt 即可。
9. 文件比较、分屏和同时滚动
在左侧的文件列表中,右键点击第一个文件点击‘for’,右键点击第二个文件点击‘with’,点击之后会生成一个新的对比文件,在这个文件中,左边的就是你的第一个文件,右边的就是第二个文件。
10. 其他有用的插件
铛-
代码格式化工具。选择要格式化的代码,按 ctrl + k,然后按 ctrl + f。
自动补全工具则更偏向于推理,它可以根据开发者之前的输入,快速推断出接下来要输入的代码,甚至可以精准的推断并补全参数、字符串、符号等。
版本管理。可以清晰展示当前文件的修改时间和修改历史,可视化分支、作者等信息,并提供便捷、强大的对比功能。
在开发过程中,经常会遇到跳转或者翻页的情况,经过一系列的跳转后想要回到原来的位置却发现根本不知道从哪里开始。通过Ctrl+Alt+K、Ctrl+Alt+J、Ctrl+Alt+L快捷键添加标签,就可以快速跳转到指定标签位置。
去做
开发过程中常用的待办事项标签有TODO和FIXME,TODO可以突出显示需要改进的地方,可以避免我们在检查代码过程中遇到的麻烦。
参考:
使用VS Code在系统下编译和调试C++程序以及添加外部库
CMake — CMake 工具 1.4.0
带有代码的 C++
在代码中
调试解决方案:
+GDB
cmake 调整 g++
巴泽尔调调
用 clang 替换 g++:
dpkg -l | grep clang
用 lldb 替换 gdb:
apt-cache lldb
安装插件
.json 导入 clang 插件
扫一扫在手机端查看
-
Tags : ubuntu vscode c++
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。