Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Windows上使用Cygwin64编译器和调试器设置C的VS代码_C_Visual Studio Code_Cygwin_Vscode Settings_Vscode Tasks - Fatal编程技术网

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

在Windows上使用Cygwin64编译器和调试器设置C的VS代码,c,visual-studio-code,cygwin,vscode-settings,vscode-tasks,C,Visual Studio Code,Cygwin,Vscode Settings,Vscode Tasks,希望设置VS代码以使用Cygwin/Cygwin64。 已经设置了以下各项: 已在windows上安装Cygwin64 从Cygwin安装程序安装的gcc(编译器)和gdb(调试器)软件包 GCC和GDB在windows路径中不是 已安装的Visual Studio代码 发布这篇文章是因为我花了好几天的时间从多个不同的来源建立了这篇文章。 这是专门针对安装了Cygwin/Cygwin64的Windows的 免责声明:我只针对构建单个文件进行了测试。此处的说明用于设置VS代码 在VS代码上安装扩展

希望设置VS代码以使用Cygwin/Cygwin64。 已经设置了以下各项:

  • 已在windows上安装Cygwin64
  • 从Cygwin安装程序安装的gcc(编译器)和gdb(调试器)软件包
  • GCC和GDB在windows路径中不是
  • 已安装的Visual Studio代码
  • 发布这篇文章是因为我花了好几天的时间从多个不同的来源建立了这篇文章。 这是专门针对安装了Cygwin/Cygwin64的Windows的


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

    此处的说明用于设置VS代码

  • 在VS代码上安装扩展C/C++
  • 如果已经有工作区,请跳过此步骤

    创建文件夹并将此文件夹添加到VS代码中。然后保存工作区

  • 设置
    launch.json

    转到“调试>打开配置”,这将打开launch.json文件。下面是我的配置。如果您正在测试这个,并且不确定您正在做什么,我建议您在替换内容之前将原始内容保存到某个地方

    注意:
    “预启动任务”:“gcc.exe生成活动文件”
    运行标记为“gcc.exe生成活动文件”的任务

  • 设置
    task.json

    转到“终端>配置任务…”并选择“gcc.exe生成活动文件”

    “args”中的各种“-W”标志旨在使编译器更加严格。如果您愿意,可以删除它们

  • 生成和调试活动文件

    转到要生成的C文件,按Ctrl+Shift+p键选择“命令选项板>C/C++生成和调试活动文件>gcc.exe生成活动文件”,或者如果只想生成,则转到“终端>运行生成任务”


  • Cygwin64效率低下,因为它使用的是中等内存模型。这使得静态数据使用64位绝对地址而不是32位相对地址

    我建议您改用Visual Studio的Clang插件,除非您有特定的理由使用Cygwin64。看

    在使用Clang插件时,还可以去掉cygwin DLL

    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
    
    {
        "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"
            }
        ]
    }
    
    {
        "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"
    }