【问题标题】:Compiling and running .exe in vs code with tasks在带有任务的vs代码中编译和运行.exe
【发布时间】:2020-09-09 22:41:06
【问题描述】:

所以我一直在学习 C++,到目前为止我所有的练习都是在 vs 代码中完成的。但是,当我处理 OOP 时,我无法使用扩展名一次编译多个文件。所以,我用谷歌搜索了如何做到这一点,无论我走到哪里,我都发现它可以通过任务完成。我花了好几个小时才找到实际有效的 tasks.json 文件的正确代码。但是,它只能编译,我必须手动运行 .exe 文件。显然我想两者都做,但我不知道怎么做。我只需要允许任务在编译后运行文件的额外位。我用 vs 代码查找了任务的文档,但它非常令人困惑,对我来说根本没有意义。我想学习 C++ 而不是如何做 tasks.json 哈哈。希望有人可以帮助我。如果您要告诉我查找文档或什么都不要说,因为我发布此内容不是为了让人们告诉我查找文档,因为该文档是垃圾。

这里是当前只能编译的tasks.json:

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "C++ Compile",
            "command": "C:\\Program Files\\mingw-w64\\mingw64\\bin\\g++.exe",
            "args": [
                "-g",
                "${fileDirname}\\*.cpp",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "${workspaceFolder}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

感谢您的宝贵时间,感谢您提供任何帮助。

【问题讨论】:

  • 您可能想升级到Visual Studio Community,这对于多源文件项目来说要好得多。
  • 与其学习 tasks.json(this question 似乎有很多),不如投资于学习普遍可用的构建系统,例如 Makefiles 或 CMake。我相信 VSC 有一个可以通过的 CMake 插件,或者您可以从终端生成您的项目,然后让 VSC 调用 cmake --build ${BUILDDIR}
  • 我和 tadman 在一起。 VS Code 对于不熟悉它的工作原理并同时学习编程的人来说可能是个问题。您将很难确定您是否犯了编码错误,或者您是否错误地配置了 VS Code。您可能不想同时学习两件事。
  • 您可能想尝试使用一些 IDE,而不是像 VSCode 这样的代码编辑器。如果您只使用默认设置,许多 IDE 会自动为您设置类似的设置。

标签: vscode-tasks


【解决方案1】:

stackoverflow 上的第一个答案,所以请原谅任何错误(在呈现答案时)

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "C++ Compile",
            "command": "C:\\Program Files\\mingw-w64\\mingw64\\bin\\g++.exe",
            "args": [
                "-g",
                "${fileDirname}\\*.cpp",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "${workspaceFolder}"
            },
            "problemMatcher": [
                "$gcc"
            ],

        },
        {
            "type": "shell",
            "label": "C++ run",
            "command": ".\\${fileBasenameNoExtension}.exe",
          "dependsOn":["C++ Compile"],
         "dependsOrder": "sequence",
            "group": {
                          "kind": "build",
                           "isDefault": true
                     }
          
         }
    ]
}

组应该从以前的任务(c++ 编译)转移到新任务(c++ 运行),如果没有找到 .exe(代码假定它在工作区目录中),请根据您的配置更改目录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多