在Windows上使用Cygwin64编译器和调试器为C设置VS代码

时间:2019-06-05 08:54:19

标签: c visual-studio-code cygwin vscode-settings vscode-tasks

要设置VS Code以与Cygwin / Cygwin64一起使用。 已经进行了以下设置:

  1. 在Windows上安装了Cygwin64
  2. 从Cygwin安装程序中安装了gcc(编译器)和gdb(调试器)软件包
  3. GCC和GDB在Windows路径中
  4. 已安装的Visual Studio代码

发布此信息是因为我花了几天时间从多个不同的来源进行设置。 这是专门针对安装了Cygwin / Cygwin64的Windows。

免责声明:我仅针对构建单个文件进行了测试。

2 个答案:

答案 0 :(得分:1)

此处的说明用于设置VS Code

  1. 在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
  1. 如果已经有工作区,请跳过此步骤。

    创建一个文件夹并将该文件夹添加到VS Code中。然后保存工作区。

  2. 设置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"
        }
    ]
}
  1. 设置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"
}
  1. 构建和调试活动文件

    转到要构建的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。