我正在尝试运行GLSL 示例,但我不能。
错误出现在glGetShaderiv(vShader, GL_COMPILE_STATUS, &status);
程序退出的行中。vShader
是文件vPhong.glsl
。
返回的错误是:
0(18) : error C0000: syntax error, unexpected $undefined at token "<undefined>"
0(18) : error C0501: type name expected at token "<undefined>"
我已经“安装”并引用了 GLEW 和 Glut 及其 lib 文件。我已经glewInit
完成了我的程序。
该程序能够找到 .glsl 文件。
奇怪的是我能够运行预编译的 GLSL-demo ,并且还可以在我的电脑上编译和运行该项目。非工作程序中的“初始化”与此相同。
我曾尝试将有缺陷的源代码复制到成功的项目中,以查看项目设置中是否存在导致错误的内容,但不幸的是,事实并非如此。所以错误似乎在 C++ 代码中,而不是项目中。
进步:
在我的 Windows 7 机器上,通过 Visual Studio 运行时出现“访问冲突”。如果我“单独”运行该程序,它就会停止工作。在 Windows XP 机器上,我遇到了一个未捕获的异常。
fopen
编译程序时,我没有收到任何错误或警告(除了不安全的警告)。
Visual Studio 突出显示该行vShader = glCreateShader(GL_VERTEX_SHADER);
作为错误的来源。
添加glewInit();
修复了上述错误。