繁体   English   中英

当我在c中编译程序时,为什么会得到一个未定义的引用(例如`glColor3f')?

[英]Why do I get an undefined reference( to `glColor3f' ,for example) when I compile a program in c?

我正在编译一个在ubuntu(linux)中使用opengl的示例程序。 代码的简短片段如下:

 #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提前提供任何帮助。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM