我最近在Windows機器上使用OpenGL編寫了一個基本的渲染引擎,所有東西在這方面運行良好。不幸的是,當我嘗試將它運行到運行Ubuntu 12.04的筆記本電腦上時,出現了一些複雜情況,最初鏈接設置和庫是問題,但我設法排除了所有問題,目前的問題是編譯GLSL着色器,我編譯頂點和片段着色器,我得到以下錯誤。在Linux中編譯GLSL着色器時出錯
'0:2(14):預處理器錯誤:語法錯誤,意想不到的IDENTIFIER,期望NEWLINE
'
這是從我的頂點着色器的代碼。
#version 330 core
layout(location = 0) in vec3 position;
layout(location = 1) in vec2 uv;
layout(location = 2) in vec3 normal;
struct DirectionalLight{
vec3 direction;
vec3 color;
vec3 ambient;
};
uniform mat4 modelMatrix;
uniform mat4 viewMatrix;
uniform mat4 projectionMatrix;
uniform DirectionalLight dLight;
out vec2 iUv;
out vec3 iPosition;
out vec3 iNormal;
out vec3 lightDir;
void main()
{
iUv = uv;
iPosition = vec3(viewMatrix * modelMatrix * vec4(position,1));
iNormal = normal;
lightDir = vec3(normalize(viewMatrix * vec4(dLight.direction, 0)));
gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position,1);
}
任何想法?
您當然知道OP可能不想使用兼容性配置文件? –