我正在尝试为opengl开发设置visual studio代码。我已经将它用于普通的c / c ++开发我现在正在尝试将opengl开发添加到组合中。我知道如何在其他平台上设置opengl(即Eclipse,Xcode,Visual Studio,CodeBlocks)。我的问题的根源是如何在visual studio代码中设置依赖项。我最好的猜测是在task.json文件中运行一个任务。现在它只是填充了每次运行程序时编译项目的代码。
答案 0 :(得分:4)
遇到相同的问题。请注意,这里有两个问题:
launch.json
和tasks.json
文件?
tasks
。对我来说,主要问题是我在使用MAC,并且许多说明仅针对Linux和Windows(它们没有framework
参数),或者它们说明了如何在Xcode中进行设置GUI。
this Github Gist和this StackOverflow post都建议:
<gl/*>
中(例如Mac包含<OpenGL/*>
,其中部分包含<GLUT/*>
,用于glut文件)framework
(以包括外部库),例如...
gcc -o ex1 ex1.c -framework GLUT -framework OpenGL -Wno-deprecated
cc <your_file.c> -framework GLUT -framework OpenGL
frameworks
添加到您的C / C ++扩展设置和/或tasks.json
中(再次:使用clang
或clang++
时非常相似)
将这种见解与official documentation on C/C++ tasks
集成在一起,一切就完成了! :)
以上只是我总体旅程的简短版本,详细说明如下:
<gl/*>
中(例如,核心文件为<OpenGL/*>
,而glut文件为<GLUT/*>
)。OpenGL
标志添加framework
和其他库。 frameworks
添加到您的C / C ++扩展设置中-Wno-deprecated
经历了重大变化)brew install glew
和brew install glfw
和/或您使用的任何其他外部库。VSCode的设置基本相同。确保正确设置了C / C ++扩展后,请查看您的环境的文档,该文档位于the official "C/C++ for Visual Studio Code" documentation page的底部。
但是,更大的问题通常是如何进行编译。我没有在非MAC系统上进行编译的最新示例或经验。但是这里有一些相关的参考文献:
根据open github issue #1083,到目前为止,显然跨平台开发仍然可能会引起一些头痛。
我还发现了一个使用VSCode here进行OpenGl跨平台编译的人的例子。您可能想查看他们的entire .vscode/
folder(如果不是他们的整个项目设置)。
如今,通过遵循these instructions,很容易将任意数量的启动(运行和/或调试)配置添加到内置的启动+调试器UI中。
在调试器UI出现问题之前(或者至少在我没有注意到它之前),您可以安装Code Runner扩展名,您会在右上角(或{{ 1}})。
如果您只想使用它来运行单个可执行文件,则此方法很好。如果要单独运行单个文件,则会有些困难。我没有尝试过,但是正如他们建议的那样,您可以使用特殊的文件命名模式,即glob pattern(例如Command+Alt+N
),然后使用*.gl.cpp
设置根据文件名编译+运行参数。
答案 1 :(得分:1)
有同样的问题,我要做的就是:
sudo apt-get install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev freeglut3-dev
如前所述Here
.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
文件答案 2 :(得分:0)
在构建任务中,如果使用gcc / gdb,请添加这些参数 -lGLU -lGL -lglut