我正在尝试为opengl开发设置visual studio代码。我已经让它为plain c/c++开发工作了,我现在正在尝试将opengl开发添加到混合中。我知道如何在其他平台上设置opengl(例如Eclipse、Xcode、Visual Studio、CodeBlocks)。我的问题的根源更多的是如何在VisualStudio代码中设置依赖项。我最好的猜测是在task.json文件中运行一个任务。现在它只是充满了代码编译项目每次我运行的程序。
zmeyuzjn1#
遇到了同样的问题。请注意,这里有两个问题:
launch.json
tasks.json
tasks
对我来说,主要的问题是我在Mac上,许多解释只针对Linux和Windows(没有framework参数),或者他们解释了如何在Xcode GUI中设置这一切。
framework
如this Github Gist和this StackOverflow post所示:
<gl/*>
<OpenGL/*>
<GLUT/*>
gcc -o ex1 ex1.c -framework GLUT -framework OpenGL -Wno-deprecated
cc <your_file.c> -framework GLUT -framework OpenGL
frameworks
(and同样:使用clang或clang++时非常相似)将这一见解与C/C++ tasks的官方文档结合起来,就大功告成了!:)
clang
clang++
以上只是我整个旅程的一个简短版本,详细如下:1.我还从the official VSCode instructions on C++ programming with VSCode(您也提到了)开始。1.然后我点击了底部的链接:Using Clang in Visual Studio Code(GCC设置非常相似)。1.跟随this Github Gist了解Mac和非Mac OpenGl编译之间的差异。有两个主要差异:
OpenGL
-Wno-deprecated
brew install glew
brew install glfw
VSCode的设置基本上是相同的。确保在正确设置了C/C++扩展后,查看适用于您的环境的文档,这些文档位于the official "C/C++ for Visual Studio Code" documentation page的底部。然而,更大的问题通常是如何让它编译,我没有最近的例子或经验编译非MAC系统;但这里有一些相关的参考资料:
显然,根据这篇文章(到目前为止),跨平台开发仍然可能会引起一些头痛。我还发现了一个例子,有人尝试使用VSCode here进行OpenGl跨平台编译,您可能需要查看他们的entire .vscode/ folder(如果不是整个项目设置)。
.vscode/
现在,通过these instructions可以很容易地向内置的Launch + Debugger UI添加任意数量的Launch(Run和/或Debug)配置。
在调试器UI出现之前(或者至少在我注意到它之前),您可以安装Code Runner扩展,您将在右上角得到一个整洁的小“运行代码”按钮(或Command+Alt+N)。如果你只想用它来运行单个可执行文件,这很好用。如果你想单独运行单个文件,这就会变得有点困难。我没有试过,但正如他们建议的那样,为此,你可以使用一个特殊的文件命名模式,即glob pattern(例如*.gl.cpp),并使用code-runner.executorMapByGlob设置根据文件名使用不同的编译+运行参数。
Command+Alt+N
*.gl.cpp
code-runner.executorMapByGlob
jm81lzqq2#
遇到同样的问题,我必须做的只是:
sudo apt-get install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev freeglut3-dev libglew-dev
如上所述Here
.cpp
{ "tasks": [ { "type": "cppbuild", "label": "C/C++: g++ build active file", "command": "/usr/bin/g++", "args": [ "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}", "-lGLU", "-lglfw", "-lGLEW", "-lGL", "-lglut" ], "options": { "cwd": "${workspaceFolder}" }, "problemMatcher": [ "$gcc" ], "group": { "kind": "build", "isDefault": true }, "detail": "Task generated by Debugger." } ], "version": "2.0.0" }
6yt4nkrj3#
如果使用gcc/gdb -lGLU -lGL -lglut,请在构建任务中添加这些参数
bsxbgnwa4#
*OpenGl_c++_GLFW_GLAD_VScode_Linux_最新版(Ubuntu/Debian)设置
提示:高级用户文件安装在/usr/中,本地用户文件存储在/usr/local/中,任何文件都可以在这里使用。
**3)**打开终端并键入以下命令,安装GLFW库沿着opengl梅萨库。
检查glfw是否已安装,以及在你的mint/ubuntu上的位置:
pkg-config --cflags glfw3
**4)**从网站https://glad.dav1d.de/下载高兴现在在网站中选择:
然后点击generate来下载这个高兴的zip.现在解压这个glad.zip文件到你系统上的任何地方并且打开它来查找Include和scr文件.打开scr文件,然后将glad. c文件复制到包含cpp文件的项目文件夹中。打开包含文件,然后将glad和khr文件复制到usr/include,如下所示---〉/include/glad/glad. h和/include/KHR/KHR. h复制到/usr/include,可以使用以下命令完成:
cp -r PathToYourUnzippedGladFolder/include/glad /usr/include cp -r PathToYourUnzippedGladFolder/include/KHR /usr/include
或
cp -r PathToYourUnzippedGladFolder/include/glad /usr/local/include cp -r PathToYourUnzippedGladFolder/include/KHR /usr/local/include
默认情况下,linux可能/可能不允许读取和写入这些glad包含文件的权限,因此要授予权限并***避免编译过程中的权限被拒绝错误*请使用此命令。(转到***/use/include*或/usr/local/include文件夹,在那里您粘贴了glad和KHR包含文件)
chmod 755 myfolder //example `chmod 755 glad` , `chmod 755 KHR`
第2部分:VScode配置。**5)**为opengl project/coding创建一个文件夹,并在该文件夹中打开vscode,然后创建一个cpp文件,命名为anything。让我们粘贴一个简单的三角形opengl代码,来自learnopengl,它有,glfw和高兴使用。**6)**只是打开Tasks.json文件进行一些编辑,仅此而已。只是复制它。
"tasks": [ { "type": "cppbuild", "label": "C/C++: g++ build active file", "command": "/usr/bin/g++", "args": [ "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}", "-lGLU", "-lglfw", "-lGLEW", "-lGL", "-lglut" , "${workspaceFolder}/glad.c" ], "options": { "cwd": "${workspaceFolder}" }, "problemMatcher": [ "$gcc" ], "group": { "kind": "build", "isDefault": true }, "detail": "Task generated by Debugger." } ], "version": "2.0.0"
}1.保存每一个文件,并运行您的cpp文件使用f5,它应该工作,使trianle的可执行文件。
"${workspaceFolder}/glad.c"
2张截图:my tasks.json screenshotmy glfw glad location in usr include
4条答案
按热度按时间zmeyuzjn1#
OpenGl和C/C++以及VS代码
遇到了同样的问题。请注意,这里有两个问题:
launch.json
和tasks.json
文件?tasks
。MAC
对我来说,主要的问题是我在Mac上,许多解释只针对Linux和Windows(没有
framework
参数),或者他们解释了如何在Xcode GUI中设置这一切。靶区;DR
如this Github Gist和this StackOverflow post所示:
<gl/*>
(例如,Mac的部分文件是<OpenGL/*>
,过剩文件是<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
中(and同样:使用
clang
或clang++
时非常相似)将这一见解与C/C++
tasks
的官方文档结合起来,就大功告成了!:)更多详细信息
以上只是我整个旅程的一个简短版本,详细如下:
1.我还从the official VSCode instructions on C++ programming with VSCode(您也提到了)开始。
1.然后我点击了底部的链接:Using Clang in Visual Studio Code(GCC设置非常相似)。
1.跟随this Github Gist了解Mac和非Mac OpenGl编译之间的差异。有两个主要差异:
<gl/*>
中(例如,<OpenGL/*>
用于核心文件,<GLUT/*>
用于溢出文件)。1.必须通过
framework
标志添加OpenGL
和其他库。1.一旦你解决了这个问题:
1.将这些
frameworks
也添加到C/C++扩展设置中1.(刚开始时,您可能希望减少弃用警告;OpenGL在过去十年中经历了重大变化,使用
-Wno-deprecated
)1.如果您以前没有这样做过,那么您可能希望使用
brew install glew
和brew install glfw
和/或您使用的任何其他外部库。Windows和Linux怎么样?
VSCode的设置基本上是相同的。确保在正确设置了C/C++扩展后,查看适用于您的环境的文档,这些文档位于the official "C/C++ for Visual Studio Code" documentation page的底部。
然而,更大的问题通常是如何让它编译,我没有最近的例子或经验编译非MAC系统;但这里有一些相关的参考资料:
跨平台?
显然,根据这篇文章(到目前为止),跨平台开发仍然可能会引起一些头痛。
我还发现了一个例子,有人尝试使用VSCode here进行OpenGl跨平台编译,您可能需要查看他们的entire
.vscode/
folder(如果不是整个项目设置)。单击按钮即可运行+调试
现在,通过these instructions可以很容易地向内置的Launch + Debugger UI添加任意数量的Launch(Run和/或Debug)配置。
[已弃用] VSCode“代码运行程序”扩展
在调试器UI出现之前(或者至少在我注意到它之前),您可以安装Code Runner扩展,您将在右上角得到一个整洁的小“运行代码”按钮(或
Command+Alt+N
)。如果你只想用它来运行单个可执行文件,这很好用。如果你想单独运行单个文件,这就会变得有点困难。我没有试过,但正如他们建议的那样,为此,你可以使用一个特殊的文件命名模式,即glob pattern(例如
*.gl.cpp
),并使用code-runner.executorMapByGlob
设置根据文件名使用不同的编译+运行参数。jm81lzqq2#
Ubuntu解决方案在此:
遇到同样的问题,我必须做的只是:
安装
如上所述Here
然后
*打开要编译的主
.cpp
文件/ (以开始)*然后生成
tasks.json
**按“F5”〉选择“C(GDB/LLDB)”〉选择g++编译器**〉* 停止编译过程 **编辑
tasks.json
,添加额外的参数 (如@crazypicklerick所述),例如:.cpp
文件✔️再次按“F5”,它应该现在运行。
6yt4nkrj3#
如果使用gcc/gdb -lGLU -lGL -lglut,请在构建任务中添加这些参数
bsxbgnwa4#
*OpenGl_c++_GLFW_GLAD_VScode_Linux_最新版(Ubuntu/Debian)设置
**1)**linux-mint预装了c/c编译器。
**2)**下载vscode for linux_mint,带有c扩展和支持(包括语法突出显示)。
提示:高级用户文件安装在/usr/中,本地用户文件存储在/usr/local/中,任何文件都可以在这里使用。
**3)**打开终端并键入以下命令,安装GLFW库沿着opengl梅萨库。
检查glfw是否已安装,以及在你的mint/ubuntu上的位置:
**4)**从网站https://glad.dav1d.de/下载高兴现在在网站中选择:
然后点击generate来下载这个高兴的zip.现在解压这个glad.zip文件到你系统上的任何地方并且打开它来查找Include和scr文件.
打开scr文件,然后将glad. c文件复制到包含cpp文件的项目文件夹中。
打开包含文件,然后将glad和khr文件复制到usr/include,如下所示---〉/include/glad/glad. h和/include/KHR/KHR. h复制到/usr/include,可以使用以下命令完成:
或
默认情况下,linux可能/可能不允许读取和写入这些glad包含文件的权限,因此要授予权限并***避免编译过程中的权限被拒绝错误*请使用此命令。(转到***/use/include*或/usr/local/include文件夹,在那里您粘贴了glad和KHR包含文件)
第2部分:VScode配置。
**5)**为opengl project/coding创建一个文件夹,并在该文件夹中打开vscode,然后创建一个cpp文件,命名为anything。让我们粘贴一个简单的三角形opengl代码,来自learnopengl,它有,glfw和高兴使用。
**6)**只是打开Tasks.json文件进行一些编辑,仅此而已。只是复制它。
}
1.保存每一个文件,并运行您的cpp文件使用f5,它应该工作,使trianle的可执行文件。
"${workspaceFolder}/glad.c"
,或者只是复制粘贴上面的tasks.json代码。*2张截图:my tasks.json screenshotmy glfw glad location in usr include