【问题标题】:How to setup Visual Studio Code with OpenGL?如何使用 OpenGL 设置 Visual Studio Code?
【发布时间】:2017-05-25 10:56:00
【问题描述】:

我正在尝试为 opengl 开发设置 Visual Studio 代码。我已经让它适用于普通的 c/c++ 开发我现在正试图将 opengl 开发添加到组合中。我知道如何在其他平台(即 Eclipse、Xcode、Visual Studio、CodeBlocks)上设置 opengl。我的问题的根源更多是如何在 Visual Studio 代码中设置依赖项。我最好的猜测是在 task.json 文件中运行一个任务。现在它只是填充了每次运行程序时编译项目的代码。

【问题讨论】:

标签: c++ opengl visual-studio-code


【解决方案1】:

OpenGl & C/C++ & VSCode

遇到了同样的问题。注意这里有两个问题:

  1. 如何设置launch.jsontasks.json 文件?
  2. 使用什么命令来编译代码?
    • 这就是棘手的地方。编译取决于操作系统和环境。以下部分主要关注这一点:

MAC

对我来说主要问题是我在 MAC 上,许多解释只针对 Linux 和 Windows(它们没有 framework 参数),或者他们解释了如何在 Xcode GUI 中进行设置。

TL;DR

正如this Github Gistthis StackOverflow post 都建议的那样:

  1. 修复包含文件名
    • 并非所有内容都在 <gl/*> 中(例如,Mac 有 <OpenGL/*> 用于其中的一部分,<GLUT/*> 用于 glut 文件)
  2. 为了运行,将framework 添加到您的构建参数(以包括外部库),例如...
    • gcc -o ex1 ex1.c -framework GLUT -framework OpenGL -Wno-deprecated
    • cc <your_file.c> -framework GLUT -framework OpenGL
  3. 不要忘记:将 frameworks 添加到您的 C/C++ 扩展设置和/或 tasks.json

(同样:使用clangclang++ 时会非常相似)

将这种洞察力与official documentation on C/C++ tasks 结合起来,就大功告成了! :)

更多详情

以上只是我整个旅程的一个较短的版本,详细如下:

  1. 我也是从the official VSCode instructions on C++ programming with VSCode 开始的(你也提到过)。
  2. 然后我点击底部的链接:Using Clang in Visual Studio Code(GCC 设置非常相似)。
  3. 关注this Github Gist,了解 Mac 和非 Mac OpenGL 编译之间的差异。有两个主要区别:
    1. APPLE 路径略有不同;并非所有内容都在 <gl/*> 中(例如,<OpenGL/*> 用于核心文件,<GLUT/*> 用于过剩文件)。
    2. 您必须通过framework 标志添加OpenGL 和其他库。
  4. 一旦你处理好了:
    1. 也将这些 frameworks 添加到您的 C/C++ 扩展设置中
    2. (刚开始时,您可能希望减少弃用警告;因为 OpenGL 在过去十年中经历了重大变化,使用 -Wno-deprecated
  5. 如果您以前没有这样做过,您可能想要brew install glewbrew install glfw 和/或您使用的任何其他外部库。

Windows 和 Linux 呢?

VSCode 设置基本相同。确保在正确设置 C/C++ 扩展后,查看您的环境的文档,这些文档位于 the official "C/C++ for Visual Studio Code" documentation page 的底部。

然而,更大的问题通常是如何编译它。我最近没有在非 MAC 系统上编译的示例或经验;但这里有一些相关的参考资料:

  1. Compile OpenGl on Linux
  2. Compile OpenGl with GCC on Windows

跨平台?

open github issue #1083open github issue #1083 称,显然跨平台开发仍然可能会引起一些麻烦。

我还发现了一个例子,有人使用 VSCode here 对 OpenGL 跨平台编译进行了测试。您可能想查看他们的entire .vscode/ folder(如果不是他们的整个项目设置)。

点击按钮运行+调试

如今,通过these instructions 向内置的 Launch + Debugger UI 添加任意数量的启动(运行和/或调试)配置非常容易。

[弃用] VSCode“代码运行器”扩展

在调试器 UI 出现之前(或者至少在我注意到它之前),您可以安装 Code Runner 扩展,您会在右上角(或 Command+Alt+N)看到一个简洁的“运行代码”小按钮.

如果您只想使用它来运行单个可执行文件,这可以正常工作。如果您想单独运行单个文件,它会变得有点困难。我没有尝试过,但正如他们建议的那样,您可以使用特殊的文件命名模式,即glob pattern(例如*.gl.cpp)并使用code-runner.executorMapByGlob 设置基于不同的编译+运行参数文件名。

【讨论】:

  • 很好的答案,+1。也就是说,GLUT 是邪恶的,应该被根除。
  • -framework OpenGL 不适用于 clang,-lGL 或 -lOpenGL 也不能
  • @Petruza, the post I linked 使用-lopengl32
【解决方案2】:

这里是 Ubuntu 解决方案:

遇到同样的问题,我要做的就是:

安装

sudo apt-get install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev freeglut3-dev

如提到的Here

那么

  • (打开 vscode) > 文件 > 打开文件夹 > “选择你的 c++ 的项目文件夹”
  • 打开您要编译的 ma​​in .cpp 文件/(开始)
  • 然后生成tasks.json 按“F5” > 选择“C++ (GDB/LLDB)” > 选择g++编译器 > 停止编译过程
  • 编辑tasks.json,添加额外的参数(如@crazypicklerick 所述),例如:
{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++ build active file",
            "command": "/usr/bin/g++",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}",
                "-lGLU",
                "-lGL",
                "-lglut"
            ],
            "options": {
                "cwd": "${workspaceFolder}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "Task generated by Debugger."
        }
    ],
    "version": "2.0.0"
}
  • 保存文件并返回到您的主 .cpp 文件

✔️ 再次按“F5”,它应该立即运行。

【讨论】:

    【解决方案3】:

    如果使用 gcc/gdb,请在您的构建任务中添加这些参数 -lGLU -lGL -lglut

    【讨论】:

      猜你喜欢
      • 2019-01-14
      • 2015-09-17
      • 2021-07-09
      • 2016-07-06
      • 1970-01-01
      • 1970-01-01
      • 2019-10-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多