You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu18.04下OpenGL3.0(GLSL130)着色器编译INTCONSTANT错误求助

解决GLSL 130着色器编译的语法错误问题

嘿,我碰到过类似的坑!你收到的unexpected INTCONSTANT错误,本质是GLSL编译器在不该出现整数的位置读到了整数常量,结合错误提示里的0:7(2)位置信息,大概率是你的着色器代码里混进了多余的行号或者无用数字。

排查与解决步骤:

  • 检查着色器文件的完整内容
    打开你的顶点和片段着色器文件,仔细查看每一行的开头、结尾以及文件末尾,是不是复制代码时不小心把编辑器显示的行号(比如有些编辑器会自动显示行号,复制时带进去了)或者其他多余数字粘进来了?你的代码本身语法是没问题的,但如果文件最后多了个7之类的数字,编译器就会直接懵掉。

  • 重新整理干净的着色器代码
    把下面的代码复制到空白文件里保存,确保没有任何多余内容:

    顶点着色器

    #version 130
    in vec4 position;
    void main(){
        gl_Position = position;
    }
    

    片段着色器

    #version 130
    out vec4 fragment;
    void main(){
        fragment = vec4(1.0, 0.0, 0.0, 1.0);
    }
    
  • 顺带确认OpenGL上下文版本
    虽然这次错误是语法问题,但还是要确保你创建的OpenGL上下文确实是3.0版本(对应GLSL 130),版本不匹配也可能触发奇怪的解析错误,不过优先解决代码里的多余内容就好。

错误原因分析:

GLSL编译器读到文件末尾时,本来应该结束解析流程,但它意外看到了一个整数常量(比如不小心粘进来的行号数字),所以就抛出了syntax error, unexpected INTCONSTANT, expecting $end的错误,属于典型的「代码里混了不该有的冗余内容」问题。

内容的提问来源于stack exchange,提问作者ssaattww

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 09:02:28