eclipse上openGl的问题

Posted

技术标签:

【中文标题】eclipse上openGl的问题【英文标题】:problems with openGl on eclipse 【发布时间】:2010-05-18 13:43:29 【问题描述】:

我正在使用 Windows XP 我有 Eclipse Galileo 的便携式版本,但我没有发现过剩所以我决定使用 link 添加它我完成了所有步骤,现在我正在尝试编译这段代码

#include "GL/glut.h"
#include "GL/gl.h"
#include "GL/glu.h"

///////////////////////////////////////////////////////////
// Called to draw scene
void RenderScene(void)
 
 // Clear the window with current clearing color
 glClear(GL_COLOR_BUFFER_BIT);


 // Flush drawing commands
    glFlush();
 

///////////////////////////////////////////////////////////
// Setup the rendering state
void SetupRC(void)
    
    glClearColor(0.0f, 0.0f, 1.0f, 1.0f);
    

///////////////////////////////////////////////////////////
// Main program entry point
void main(int argc, char* argv[])
 
 glutInit(&argc, argv);
 glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
        glutInitWindowSize(800,600);
 glutCreateWindow("Simple");
 glutDisplayFunc(RenderScene);

 SetupRC();

 glutMainLoop();
    

我有这个错误

Simple.o: In function `RenderScene':
C:/Documents and Settings/Administrator/Desktop/workspace/open/Debug/../Simple.c:16: undefined reference to `_imp__glClear'
C:/Documents and Settings/Administrator/Desktop/workspace/open/Debug/../Simple.c:20: undefined reference to `_imp__glFlush'
Simple.o: In function `SetupRC':
C:/Documents and Settings/Administrator/Desktop/workspace/open/Debug/../Simple.c:27: undefined reference to `_imp__glClearColor'
Simple.o: In function `main':
C:/Documents and Settings/Administrator/Desktop/workspace/open/Debug/../Simple.c:34: undefined reference to `glutInit'
C:/Documents and Settings/Administrator/Desktop/workspace/open/Debug/../Simple.c:35: undefined reference to `glutInitDisplayMode'
C:/Documents and Settings/Administrator/Desktop/workspace/open/Debug/../Simple.c:36: undefined reference to `glutInitWindowSize'
C:/Documents and Settings/Administrator/Desktop/workspace/open/Debug/../Simple.c:37: undefined reference to `glutCreateWindow'
C:/Documents and Settings/Administrator/Desktop/workspace/open/Debug/../Simple.c:38: undefined reference to `glutDisplayFunc'
C:/Documents and Settings/Administrator/Desktop/workspace/open/Debug/../Simple.c:42: undefined reference to `glutMainLoop'
collect2: ld returned 1 exit status

谁能帮帮我,在此先感谢

【问题讨论】:

【参考方案1】:

您似乎没有链接 OpenGL、GLU 或 GLUT 库。您需要告诉 Eclipse 链接它们,并且需要告诉它存储它们的目录(至少对于大多数 IDE,这两个操作是相互独立的)。

如果没记错的话,openGL 本身就是 opengl32.lib。如果一开始就安装得当,IDE 可能已经知道该库的位置(即,它是 Windows 的正常部分,并且该库将与其他正常的 Windows 库一起使用)。 glu 函数在 glu32.lib 中,应该在同一个地方。

Glut 通常位于名为 glut32.lib 的文件中。假设您将 Glut 安装在 C 盘的根目录中,它通常位于“C:\glut-3.7\lib\glut”。

【讨论】:

你真是个天才,我找了这个资料 6 个小时,非常感谢【参考方案2】:

您似乎错过了添加库并且链接器找不到它们。确保在“库”对话框中指定了正确的库。我这里没有 Eclipse 安装,但是这个对话框应该在“右键单击项目 -> 属性 -> 库/C++ 链接器”附近的某个地方

【讨论】:

以上是关于eclipse上openGl的问题的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse标记OpenGL函数无法解析

Eclipse CDT 编辑器无法识别 OpenGL 扩展

Eclipse中通过Android模拟器调用OpenGL ES2 0函数操作步骤

使用来自blender 2.62+的.obj文件,在java中使用Eclipse for Android openGL ES

在 Eclipse 中构建 FLTK 项目

eclipse+mingw 编译c++出错,请大神门帮我看看!!!