我目前正在使用Ubuntu 16.04上的OpenGL開發一個項目,並且遇到了一個主要問題。在這一點上,我不知道該怎麼做,因爲它覺得我已經嘗試了一切,以解決這個問題。C++ OpenGL着色版本錯誤 - 不支持GLSL x [Ubuntu 16.04]
出於某種原因,我只是着色器將無法編譯,並返回以下錯誤:
Failed to compile vertex shader!
0:1(10): error: GLSL 4.50 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES, 3.00 ES, 3.10 ES, and 3.20 ES`
我已經調整了着色器文件中的版本沒有任何的運氣。 #version 450 core
等,但我一直得到相同的結果。
僅供參考,這裏是sudo glxinfo | grep "OpenGL"
輸出:
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 520 (Skylake GT2)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 13.1.0-devel
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 13.1.0-devel
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 13.1.0-devel
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:
顯示核心的OpenGL 4.5安裝從glxinfo的輸出,所以這是爲什麼不支持?
我也試着找到項目中使用的OpenGL的當前版本:std::cout << "OpenGL version: " << glGetString(GL_VERSION) << std::endl;
這導致空白返回。
我已經花了10個小時在這個單一的問題,直到現在,所以任何幫助表示讚賞!
編輯: 有沒有辦法強制項目/ Ubuntu使用OpenGL而不是GLSL,即完全刪除GLSL(本部分)?
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 13.1.0-devel
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:
根據[這](https://en.wikipedia.org/wiki/OpenGL_Shading_Language#Versions)表似乎我有兩個不同版本的OpenGL安裝? –