Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt与QOpenGLWidget核心配置文件:大量着色器编译错误_C++_Macos_Qt_Opengl - Fatal编程技术网

C++ Qt与QOpenGLWidget核心配置文件:大量着色器编译错误

C++ Qt与QOpenGLWidget核心配置文件:大量着色器编译错误,c++,macos,qt,opengl,C++,Macos,Qt,Opengl,我在MacOS 10.12下的Qt5.7应用程序上使用了一个带有英特尔GPU的QOpenGLWidget 我尝试使用 QSurfaceFormat format; format.setDepthBufferSize(24); format.setStencilBufferSize(8); format.setVersion(3, 2); format.setProfile(QSurfaceFormat::CoreProfile); QSurfaceFormat::setDefaultFormat

我在MacOS 10.12下的Qt5.7应用程序上使用了一个带有英特尔GPU的
QOpenGLWidget

我尝试使用

QSurfaceFormat format;
format.setDepthBufferSize(24);
format.setStencilBufferSize(8);
format.setVersion(3, 2);
format.setProfile(QSurfaceFormat::CoreProfile);
QSurfaceFormat::setDefaultFormat(format);
如中所述

现在,当我这样做时,我会遇到很多着色器/编译错误,例如

QOpenGLShader::compile(Fragment): ERROR: 0:1: '' :  #version required and missing.

*** Problematic Fragment shader source code ***
#define lowp
#define mediump
#define highp
#line 1

lowp vec4 srcPixel(); 
void main() 
{ 
    gl_FragColor = srcPixel(); 
}

lowp vec4 srcPixel() 
{ 
    return vec4(0.98, 0.06, 0.75, 1.0); 
}
并不是说我没有编写或编译这些着色器:它们都来自Qt。我已经做了一些研究,发现这与Intel的Intel GPU驱动程序/OpenGL实现有关,它不允许第一行不是
#version


但这是Qt的预期结果吗??有什么办法可以解决这个问题吗?

您是否尝试过在着色器顶部添加所需的
#version
字符串?@G.M.这些不是我的着色器。这些是Qt尝试为自己编译的一些通用着色器。