如何使用OpenGL设置Visual Studio代码?

时间:2017-01-10 20:11:22

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

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

3 个答案:

答案 0 :(得分:4)

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文件为<GLUT/*>)。
    2. 您必须通过OpenGL标志添加framework和其他库。
  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 #1083,到目前为止,显然跨平台开发仍然可能会引起一些头痛。

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

只需点击一个按钮即可

运行+调试

如今,通过遵循these instructions,很容易将任意数量的启动(运行和/或调试)配置添加到内置的启动+调试器UI中。

[不推荐使用] VSCode“代码运行器”扩展名

在调试器UI出现问题之前(或者至少在我没有注意到它之前),您可以安装Code Runner扩展名,您会在右上角(或{{ 1}})。

如果您只想使用它来运行单个可执行文件,则此方法很好。如果要单独运行单个文件,则会有些困难。我没有尝试过,但是正如他们建议的那样,您可以使用特殊的文件命名模式,即glob pattern(例如Command+Alt+N),然后使用*.gl.cpp设置根据文件名编译+运行参数。

答案 1 :(得分:1)

此处的 Ubuntu 解决方案:

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

安装

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

如前所述Here

然后

  • (打开 vscode) > 文件 > 打开文件夹 > “选择你的 C++ 的项目文件夹”
  • 打开您要编译的.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”,它应该立即运行。

答案 2 :(得分:0)

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