macOS下配置VSCode的C++程序的编译和调试
VSCode 来写 cpp 文件并不是 C++ 编程首选,但是这不妨碍我们折腾它的编译与调试
相信来学习 C++ 的你已经了解了 C++ 的编译器是如何将一个或多个 cpp 文件变成一个可执行文件的,而我们在 mac 的 VSCode 的配置上要下功夫的,就是如何让 VSCode 告诉编译器如何编译
一点背景
关于编译器
以下只是个人使用感受
和许多类 Unix 系统类似,macOS 已经内置了 C++ 的编译器,用于编译可执行文件,不过这个编译器似乎并不自带什么方便的调试器
但是 macOS 还自带了一个通用的调试器 LLDB,似乎可以调试多种高级语言写出来的程序
你会发现 macOS 无论是 clang 还是 g++ 都可以执行,不过好像它们都被链接到同一个编译器
综上,我们要解决如何调用调试器的问题,以及我们的编译命令主要用
g++
关于VSCode
VSCode 是为前端工作者设计的,不过只要安装一些插件就可以用来完成后端工作,可定制性很高
对于编译调试,需要有配置文件来告诉VSCode如何编译调试,所以我们的整个工作是写一个正确的配置文件控制 VSCode 和编译器
你可以把自己的一堆 cpp 文件放在一个文件夹下(这个文件夹的子文件夹也可以),之后我们会在文件夹下新建
.vscode
文件夹,这个文件夹将会用来存放重要的tasks.json
和launch.json
文件.前者是编译的配置文件,后者是调试的配置文件,后者对前者依赖程度很高
配置
首先在 VSCode 的扩展页搜索 C/C++
,它主要来完成自动补全和生成默认的编译配置
然后安装 CodeLLDB
,它主要用来连接 macOS 上的调试器 lldb
编译调试
来到一个cpp文件下,按 Shift+Cmd+B
,第一次按下会跳出默认的编译选项,我们不做选择,而是点击 ‘C/C++ : Build g++ active file’ 的那个小齿轮,这样会自动生成 tasks.json
并打开编辑它的标签页
我的配置如下
1 | { |
主要由两个部分组成,第一个是编译用的,只生成可执行文件;第二个是调试用的,还会生成dSYM调试用文件
第一个的 "group" :"isDefault": true
可以使它成为 Shift+Cmd+B
编译快捷键的默认操作;第二个则会在调试时被调用,并在 debug 文件夹下生成可执行文件和调试用文件,而后我们配置的调试命令会执行 debug 下的可执行文件(而不是像第一个那样执行与 cpp 文件同目录下的可执行文件)
同样在 cpp 文件标签页下,我们换到 debug 页,点击 创建launch.json
,然后选择 LLDB
我的配置如下
1 | { |
可以看到,"preLaunchTask"
节点对于了我们之前的第二个编译配置
以上就是基本配置,你可以选择 copy 我的配置,或者看看这些配置这些参数代表了什么,然后自己在 VSCode 生成的配置基础上写出自己的一份配置
我也是这么过来的QAQ
自动补全
有时候编译完会出现 C++ 标准的警告
在 VSCode 的设置里搜索 Cpp standard
,设置为你需要的标准