在 Windows 上使用 Cygwin64 编译器和调试器为 C 设置 VS 代码
Setting up VS Code for C using Cygwin64 Compiler and Debugger on Windows
想要设置 VS Code 以使用 Cygwin/Cygwin64。
已经设置了这些:
- 已在 windows
上安装 Cygwin64
- 已从 Cygwin 安装程序安装 gcc(编译器)和 gdb(调试器)包
- GCC 和 GDB NOT 在 windows 路径中。
- 已安装Visual Studio代码
发布这个是因为我花了几天时间从多个不同的来源来设置它。
这是专门针对安装了 Cygwin/Cygwin64 的 Windows。
免责声明:我只针对构建单个文件测试过它。
此处的说明用于在 VS Code 上进行设置
- 在 VS Code 上安装扩展 C/C++
Name: C/C++
Id: ms-vscode.cpptools
Description: C/C++ IntelliSense, debugging, and code browsing.
Version: 0.23.1
Publisher: Microsoft
VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools
如果您已有工作区,请跳过此步骤。
创建一个文件夹并将此文件夹添加到 VS Code 中。然后保存工作区。
设置launch.json
转到 "Debug > Open Configurations",这应该会打开 launch.json 文件。下面是我的配置。如果您正在对此进行测试并且不确定自己在做什么,我建议您在替换内容之前将原始内容保存在某个地方。
注意:"preLaunchTask": "gcc.exe build active file"
运行标记为 "gcc.exe build active file" 的任务。
{
"version": "0.2.0",
"configurations": [
{
"name": "gcc.exe build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [
{
"name": "PATH",
"value": "%PATH%;z:\cygwin64\bin"
}
],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\cygwin64\bin\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"logging": { "engineLogging": true }, //optional
"preLaunchTask": "gcc.exe build active file"
}
]
}
设置task.json
转到 "Terminal > Configure Tasks..." 和 select "gcc.exe build active file"
"args" 中的各种“-W”标志旨在使编译器更加严格。如果您愿意,可以删除它们。
{
"tasks": [
{
"type": "shell",
"label": "gcc.exe build active file",
"command": "C:\cygwin64\bin\gcc.exe",
"args": [
"-g",
"-o",
"${fileDirname}\${fileBasenameNoExtension}.exe",
"-Werror", // Optional
"-Wall", // Optional
"-Wextra", // Optional
"-ansi", // Optional
"-pedantic", // Optional
"${file}"
],
"options": {
"cwd": "C:\cygwin64\bin"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
}
},
],
"version": "2.0.0"
}
构建和调试活动文件
转到您要构建的 C 文件,按 Ctrl+Shift+P 以获得 "Command Palette > C/C++ Build and Debug Active File > gcc.exe build active file",或者如果您只想构建,则转到 "Terminal > Run Build Task".
Cygwin64 效率低下,因为它使用的是中等内存模型。这使得它使用 64 位绝对地址而不是静态数据的 32 位相对地址。
我建议使用 Visual Studio 的 Clang 插件,除非您有特定的理由使用 Cygwin64。参见 https://devblogs.microsoft.com/cppblog/clang-llvm-support-in-visual-studio/
您还可以在使用 Clang 插件时摆脱 cygwin DLL。
想要设置 VS Code 以使用 Cygwin/Cygwin64。 已经设置了这些:
- 已在 windows 上安装 Cygwin64
- 已从 Cygwin 安装程序安装 gcc(编译器)和 gdb(调试器)包
- GCC 和 GDB NOT 在 windows 路径中。
- 已安装Visual Studio代码
发布这个是因为我花了几天时间从多个不同的来源来设置它。 这是专门针对安装了 Cygwin/Cygwin64 的 Windows。
免责声明:我只针对构建单个文件测试过它。
此处的说明用于在 VS Code 上进行设置
- 在 VS Code 上安装扩展 C/C++
Name: C/C++
Id: ms-vscode.cpptools
Description: C/C++ IntelliSense, debugging, and code browsing.
Version: 0.23.1
Publisher: Microsoft
VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools
如果您已有工作区,请跳过此步骤。
创建一个文件夹并将此文件夹添加到 VS Code 中。然后保存工作区。
设置
launch.json
转到 "Debug > Open Configurations",这应该会打开 launch.json 文件。下面是我的配置。如果您正在对此进行测试并且不确定自己在做什么,我建议您在替换内容之前将原始内容保存在某个地方。
注意:
"preLaunchTask": "gcc.exe build active file"
运行标记为 "gcc.exe build active file" 的任务。
{
"version": "0.2.0",
"configurations": [
{
"name": "gcc.exe build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [
{
"name": "PATH",
"value": "%PATH%;z:\cygwin64\bin"
}
],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\cygwin64\bin\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"logging": { "engineLogging": true }, //optional
"preLaunchTask": "gcc.exe build active file"
}
]
}
设置
task.json
转到 "Terminal > Configure Tasks..." 和 select "gcc.exe build active file"
"args" 中的各种“-W”标志旨在使编译器更加严格。如果您愿意,可以删除它们。
{
"tasks": [
{
"type": "shell",
"label": "gcc.exe build active file",
"command": "C:\cygwin64\bin\gcc.exe",
"args": [
"-g",
"-o",
"${fileDirname}\${fileBasenameNoExtension}.exe",
"-Werror", // Optional
"-Wall", // Optional
"-Wextra", // Optional
"-ansi", // Optional
"-pedantic", // Optional
"${file}"
],
"options": {
"cwd": "C:\cygwin64\bin"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
}
},
],
"version": "2.0.0"
}
构建和调试活动文件
转到您要构建的 C 文件,按 Ctrl+Shift+P 以获得 "Command Palette > C/C++ Build and Debug Active File > gcc.exe build active file",或者如果您只想构建,则转到 "Terminal > Run Build Task".
Cygwin64 效率低下,因为它使用的是中等内存模型。这使得它使用 64 位绝对地址而不是静态数据的 32 位相对地址。
我建议使用 Visual Studio 的 Clang 插件,除非您有特定的理由使用 Cygwin64。参见 https://devblogs.microsoft.com/cppblog/clang-llvm-support-in-visual-studio/
您还可以在使用 Clang 插件时摆脱 cygwin DLL。