# Debian for WSL 配置C语言开发环境
::: tip 写在前面的话
本文章已经默认你会使用`WSL`和`VSCode`,且你的WSL为`Debian`发行版。
:::
## 在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
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
int main () {
printf("hello world, %s \n", "mike");
return 1;
}
```
按键盘上的F5启用调试,则`vscode`应该会自动运行调试,执行编译和运行。