首页 > 解决方案 > 有没有办法在不设置全局变量的情况下通过 vscode 使用 minGW g++ 编译 c++ 源文件?

问题描述

总的来说,我是一个初学者,正在学习 C++。我有一台学校给的笔记本电脑(因为我自己破产了),我用它来做一些简单的 c++ 东西。我正在使用添加了 C/C++ 扩展的 Visual Studio 代码来检测 C++ 代码,并且它可以工作。我的问题是,当我尝试做任何需要管理员权限的事情时,我不能这样做,因为我需要前往我们学校的 IT 部门,因为他们暂时关闭,我不能这样做。我无法编译任何东西,也找不到应该编译的 cl.exe(idk 是否正确),所以我求助于下载 MinGW 并使用他们的编译器(gcc 版本 6.3),我可以'不要设置/更改/查看全局变量或环境变量(从控制面板),因为它们被锁定在管理员权限后面。有没有办法编辑任务。json(和其他)文件,所以我可以例如编译(包括制作可执行文件)/运行/调试,通过路径到 g++.exe 文件?如果需要,我愿意复制 .dll 等其他文件。我只是希望能够使用vscode中的功能。(现在我不知道我需要在问题中包含什么以便更容易“尝试帮助”我。如果您需要程序版本和 cmd 输出之类的东西,那么我很乐意将它们放入)。注意:“不,不可能”是可以接受的,因为我可以使用 code::blocks。我只是想知道这是否合理。(现在我不知道我需要在问题中包含什么以便更容易“尝试帮助”我。如果您需要程序版本和 cmd 输出之类的东西,那么我很乐意将它们放入)。注意:“不,不可能”是可以接受的,因为我可以使用 code::blocks。我只是想知道这是否合理。(现在我不知道我需要在问题中包含什么以便更容易“尝试帮助”我。如果您需要程序版本和 cmd 输出之类的东西,那么我很乐意将它们放入)。注意:“不,不可能”是可以接受的,因为我可以使用 code::blocks。我只是想知道这是否合理。

编辑:所以我知道一种通过 cd 和 move 等命令纯粹在 cmd 和 g++ 上编译/构建 .cpp 项目的方法,但我不知道如何在 tasks.json 文件中实现它,因为我想使其自动化。我无法编辑“命令:”路径,因为它必须指向 g++.exe 文件,但是当我尝试像这样构建/编译我的 cpp 文件时,它会显示:“g++ 无法识别为内部或外部命令” .

标签: visual-studio-codeg++mingw32

解决方案


所以,我找到了一个设置环境变量的解决方案,即使控制面板中的“环境变量”无法通过管理员锁定访问。我通过执行 'setx PATH "[path to g++ folder];%PATH%" ' 和 'set PATH=[path to g++ folder];%PATH% ' 来设置 PATH(我在这里找到了信息https://www. opentechguides.com/how-to/article/windows-10/113/windows-10-set-path.html)并使用 ctrl+shift+b 运行构建,编译良好。如果有人好奇,我的 tasks.json 文件如下所示。我在这里找到了如何编写它:https ://code.visualstudio.com/docs/cpp/config-mingw :

{
"tasks": [
    {
        "type": "cppbuild",
        "label": "C/C++: g++.exe build active file",
        "command": "C:\\MinGW\\bin\\g++.exe",
        "args": [
            "-g",
            "${file}",
            "-o",
            "${fileDirname}\\${fileBasenameNoExtension}.exe",
        ],
        "options": {
            "cwd": "C:\\MinGW\\bin"
        },
        "problemMatcher": [
            "$gcc"
        ],
        "group": "build",
        "detail": "compiler: C:\\MinGW\\bin\\g++.exe"
    }
],
"version": "2.0.0"

}


推荐阅读