145 lines
4.0 KiB
Markdown
145 lines
4.0 KiB
Markdown
# Debian for WSL 配置C语言开发环境
|
||
|
||
<br>
|
||
|
||
::: tip 写在前面的话
|
||
本文章已经默认你会使用`WSL`和`VSCode`,且你的WSL为`Debian`发行版。
|
||
:::
|
||
|
||
<!-- 所需工具 **`Clang`** 和 **`GDB`** -->
|
||
|
||
## 在Debian中安装**Clang**和**GDB**包
|
||
```bash
|
||
apt-get install clang gdb
|
||
```
|
||
执行上述操作后,通过 `clang -v` 和 `gdb -v`,如果能看到输出正确的版本信息,则表示安装完成。
|
||
|
||
::: details 版本信息示例
|
||
:::code-group
|
||
```bash [clang]
|
||
Debian clang version 14.0.6
|
||
Target: x86_64-pc-linux-gnu
|
||
Thread model: posix
|
||
InstalledDir: /usr/bin
|
||
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/12
|
||
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/12
|
||
Candidate multilib: .;@m64
|
||
Selected multilib: .;@m64
|
||
```
|
||
|
||
```bash [gdb]
|
||
GNU gdb (Debian 13.1-3) 13.1
|
||
Copyright (C) 2023 Free Software Foundation, Inc.
|
||
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
|
||
This is free software: you are free to change and redistribute it.
|
||
There is NO WARRANTY, to the extent permitted by law.
|
||
```
|
||
:::
|
||
|
||
`Clang`包,作为`C`语言的编译和解释器,用来编译`C`文件代码。`GDB`用来在`vscode`中调试`C`文件。
|
||
:::tip 提示
|
||
在**Mac**上,安装`Clang`,默认会使用`lldb`进行调试。但我尝试在**Debian**上,`Clang`可以正常的使用,但是`lldb`不能使用,即使安装了`lldb`包,在*vscode*中配置了`lldb`为默认调试,也不能正常使用。所以,我选择使用`gdb`来替代`lldb`,在**Debian**上可以正常配合*vscode*使用了。
|
||
:::
|
||
|
||
## 在vscode中配置C
|
||
|
||
### 安装C/C++扩展
|
||
|
||

|
||
|
||
### 新建 `c_cpp_properties.json` 调用`clang`编译器
|
||
|
||
在当前项目下,新建 `.vscode`文件夹,并在此目录中,新建 `c_cpp_properties.json`文件:
|
||
并添加以下内容:
|
||
```json:line-numbers {9}
|
||
{
|
||
"configurations": [
|
||
{
|
||
"name": "Linux",
|
||
"includePath": [
|
||
"${workspaceFolder}/**"
|
||
],
|
||
"defines": [],
|
||
"compilerPath": "/usr/bin/clang",
|
||
"cStandard": "c23",
|
||
"cppStandard": "c++23",
|
||
"intelliSenseMode": "linux-clang-x64"
|
||
}
|
||
],
|
||
"version": 4
|
||
}
|
||
```
|
||
此文件用来配置C/C++扩展,其中设置了编译器为 `/usr/bin/clang`,
|
||
这样当前项目就可以通过`C/C++扩展`来使用当前系统安装的`clang`编译器了。
|
||
|
||
### 新建 `tasks.json`,用于调试前进行项目编译
|
||
|
||
```json:line-numbers{5,6,16,25}
|
||
{
|
||
"tasks": [
|
||
{
|
||
"type": "cppbuild",
|
||
"label": "C/C++: clang++ build active file",
|
||
"command": "/usr/bin/clang",
|
||
"args": [
|
||
"-fcolor-diagnostics",
|
||
"-fansi-escape-codes",
|
||
"-g",
|
||
"${file}",
|
||
"-o",
|
||
"${fileDirname}/${fileBasenameNoExtension}"
|
||
],
|
||
"options": {
|
||
"cwd": "${fileDirname}"
|
||
},
|
||
"problemMatcher": [
|
||
"$gcc"
|
||
],
|
||
"group": {
|
||
"kind": "build",
|
||
"isDefault": true
|
||
},
|
||
"detail": "Task generated by Debugger."
|
||
}
|
||
],
|
||
"version": "2.0.0"
|
||
}
|
||
```
|
||
|
||
### 新建 `launch.json` ,配置项目自动编译和调试任务
|
||
```json:line-numbers{11,14,17,18,19}
|
||
{
|
||
// 使用 IntelliSense 了解相关属性。
|
||
// 悬停以查看现有属性的描述。
|
||
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
|
||
"version": "0.2.0",
|
||
"configurations": [
|
||
{
|
||
"name": "(lldb) 启动",
|
||
"type": "cppdbg",
|
||
"request": "launch",
|
||
"program": "${fileDirname}/${fileBasenameNoExtension}",
|
||
"args": [],
|
||
"stopAtEntry": false,
|
||
"cwd": "${fileDirname}",
|
||
"environment": [],
|
||
"externalConsole": false,
|
||
"MIMode": "gdb",
|
||
"preLaunchTask": "C/C++: clang++ build active file",
|
||
"miDebuggerPath": "/usr/bin/gdb"
|
||
}
|
||
],
|
||
}
|
||
```
|
||
|
||
## 新建 `main.c` 文件,测试系统是否正常
|
||
```c:line-numbers
|
||
#include <stdio.h>
|
||
|
||
int main () {
|
||
printf("hello world, %s \n", "mike");
|
||
return 1;
|
||
}
|
||
```
|
||
|
||
按键盘上的<kbd>F5</kbd>启用调试,则`vscode`应该会自动运行调试,执行编译和运行。 |