要设置VS Code以与Cygwin / Cygwin64一起使用。 已经进行了以下设置:
发布此信息是因为我花了几天时间从多个不同的来源进行设置。 这是专门针对安装了Cygwin / Cygwin64的Windows。
免责声明:我仅针对构建单个文件进行了测试。
答案 0 :(得分:1)
此处的说明用于设置VS Code
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
转到“调试>打开配置”,这将打开launch.json文件。下面是我的配置。如果您正在对此进行测试,并且不确定自己在做什么,那么建议您在替换之前将原始内容保存在某处。
注意:"preLaunchTask": "gcc.exe build active file"
运行标有“ gcc.exe构建活动文件”的任务。
{
"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
转到“终端>配置任务...”,然后选择“ gcc.exe构建活动文件”
“ 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的“命令面板> C / C ++生成和调试活动文件> gcc.exe生成活动文件”,或者如果仅想生成,请转到“终端>运行构建任务”。
答案 1 :(得分:0)
Cygwin64效率低下,因为它使用的是中等内存模型。这样一来,它将静态数据使用64位绝对地址而不是32位相对地址。
除非您有特定的原因要使用Cygwin64,否则我建议您改用Visual Studio的Clang插件。参见https://devblogs.microsoft.com/cppblog/clang-llvm-support-in-visual-studio/
使用Clang插件时,您还可以摆脱cygwin DLL。