2010-11-14 130 views
3

我正在编译一个在ubuntu(linux)中使用opengl的示例程序。代码的一小片段如下:当我在c中编译程序时,为什么会得到一个未定义的引用(例如`glColor3f')?

#include <stdlib.h> 

#include <GL/glut.h> 


void createBox(GLfloat centroX, GLfloat centroY, 
         GLfloat corR, GLfloat corG, GLfloat corB) 
{ 
    /* Cor */ 

    glColor3f(corR, corG, corB); 

我已经安装了所有的包在OpenGL(在Ubuntu)制定,即:

freeglut3 freeglut3-dev libglew1.5 libglew1.5-dev libglu1-mesa 
libglu1-mesa-dev libgl1-mesa-glx libgl1-mesa-dev 

我编译这样的例子:

gcc -lGL CG_ex04.c -o main 

,我得到以下

/tmp/ccDWmJDZ.o: In function `createBox': 
CG_ex04.c:(.text+0x31): undefined reference to `glColor3f' 

和其他错误沿同一行。

有谁知道我在做什么错?

Thanx提前寻求帮助。

+0

这与你的编译器有关,而不是你使用的库。请删除opengl和glut标签:-) – 2010-11-14 19:17:02

+0

修复标签和标题。请记住,下次您发布问题时。标签意味着*与您的问题*相关,不能仅仅因为您的程序使用特定的API而使用。 – 2010-11-17 15:19:54

回答

7

尝试gcc -o main CG_ex4.c -lGL。 gcc参数的正确顺序很重要。

+0

该死的,就是它,虽然它一开始没有工作,我stil不得不添加'-lglut'的命令行,但现在它就像一个魅力。非常感谢! – dasen 2010-11-14 19:10:30

0

尝试包括GL/gl.h以及过量。有点奇怪,因为过剩实际上包括gl.h和glu.h。

+0

thanx为回答,我包括该库,但问题仍然存在... – dasen 2010-11-14 19:05:38

相关问题