我刚刚安装了 OpenGL 库(实际上大部分源代码已经在我的计算机中完成)并且我尝试编译第一个程序。
但是,对于 x86,对于 x64,我配置并重定向 glut32.lib
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib
到
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib\x64
出现如下错误,我不知道如何解决这个问题。错误似乎我没有正确链接库?
error LNK2019: unresolved external symbol __imp_glutSwapBuffers referenced in function "void __cdecl drawcube(void)" (?drawcube@@YAXXZ)
error LNK2019: unresolved external symbol __imp_glutMainLoop referenced in function main
error LNK2019: unresolved external symbol __imp_glutIdleFunc referenced in function main
error LNK2019: unresolved external symbol __imp_glutDisplayFunc referenced in function main
我的测试代码是这样的
<!-- language: cpp -->
void drawcube(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 1.0, 1.0);
glMatrixMode(GL_MODELVIEW);
glRotatef(angle, 0.0, 1.0, 0.0);
glBegin(GL_LINE_LOOP);
glVertex3iv(a);
glVertex3iv(b);
glVertex3iv(c);
glVertex3iv(d);
glEnd();
glFlush();
glutSwapBuffers();
}
<!-- language: cpp -->
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitWindowSize(800, 600);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
glutCreateWindow("Test OpenGL");
glutDisplayFunc(drawcube);
glutIdleFunc(drawcube);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-30.0, 30.0, -30.0, 30.0, -30.0, 30.0);
glRotatef(30.0, 1.0, 0.0, 0.0);
glMatrixMode(GL_MODELVIEW);
glClearColor(0.0, 0.0, 0.0, 0.0);
glutMainLoop();
return(0);
}
@datenwolf 的回答很有用。
我只是更改为在 x64 中编译使用 freegult 而不会出错。