我刚刚开始使用 Linux (Mint 11),最近我决定将 OpenGL 编程作为一种爱好。我发现代码和技术相对简单,但是,我很难尝试将所有资源放在正确的位置。代码是:
#include <stdlib.h>
#include <stdio.h>
#include <GL/glew.h>
#ifdef __APPLE__
# include <GLUT/glut.h>
#else
# include <GL/glut.h>
#endif
static int make_resources(void)
{
return 1;
}
static void update_fade_factor(void)
{
}
static void render(void)
{
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
glutSwapBuffers();
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
glutInitWindowSize(400, 300);
glutCreateWindow("Hello World");
glutDisplayFunc(&render);
glutIdleFunc(&update_fade_factor);
glewInit();
if (!GLEW_VERSION_2_0) {
fprintf(stderr, "OpenGL 2.0 not available\n");
return 1;
}
if (!make_resources()) {
fprintf(stderr, "Failed to load resources\n");
return 1;
}
glutMainLoop();
return 0;
}
当我编译时,我收到以下消息
../../Libraries/glut-3.7/lib/glut/libglut.so||undefined reference to `glXQueryChannelRectSGIX'|
../../Libraries/glut-3.7/lib/glut/libglut.so||undefined reference to `glXChannelRectSyncSGIX'|
../../Libraries/glut-3.7/lib/glut/libglut.so||undefined reference to `glXChannelRectSGIX'|
../../Libraries/glut-3.7/lib/glut/libglut.so||undefined reference to `glXQueryChannelDeltasSGIX'|
../../Libraries/glut-3.7/lib/glut/libglut.so||undefined reference to `glXBindChannelToWindowSGIX'|
||=== Build finished: 5 errors, 0 warnings ===|
网上查找告诉我,我可能没有包含正确的库(大概是 libX),但是我不确定在哪里可以找到它们,如果它们是正确的使用库。我已经尝试链接 /usr/lib/X86_64-linux-gnu/libX11.so,/usr/lib/X11 既不包含库文件也不包含 /lib 目录,并且我确定已安装 lib11-dev 软件包。我究竟做错了什么?
INFO:
操作系统:Linux Mint 11
IDE:代码::块10.05
下列的this教程。注意:我找不到它引用的 x11r6 目录。