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中通过Android模拟器调用OpenGL ES2 0函数操作步骤
使用来自blender 2.62+的.obj文件,在java中使用Eclipse for Android openGL ES