2011-05-27 69 views
1

我想编译我的第一个程序openGL应用程序。试图编译我的第一个opengl/mesa应用程序

这是我的代码:

#include <GL/gl.h>  
#include <GL/glu.h>  
#include <GL/glut.h>  

using namespace std; 

int main(int argc, char** argv) { 

    glutInit(&argc, argv); 

    return 0; 
} 

我已再联系/usr/lib/libglut.a到项目中。

当我尝试编译我得到这个错误:

"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf 
make[1]: Entering directory `/home/tirengarfio/programacion/3Ded' 
"/usr/bin/make" -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/3ded 
make[2]: Entering directory `/home/tirengarfio/programacion/3Ded' 
mkdir -p build/Debug/GNU-Linux-x86 
rm -f build/Debug/GNU-Linux-x86/main.o.d 
g++ -c -g -MMD -MP -MF build/Debug/GNU-Linux-x86/main.o.d -o build/Debug/GNU-Linux-x86/main.o main.cpp 
mkdir -p dist/Debug/GNU-Linux-x86 
g++  -o dist/Debug/GNU-Linux-x86/3ded build/Debug/GNU-Linux-x86/main.o /usr/lib/libglut.a 
/usr/lib/libglut.a(libglut_la-freeglut_init.o): In function `fghGetWindowProperty': 
/usr/lib/libglut.a(libglut_la-freeglut_init.o): In function `fghGetAtom': 
/usr/lib/libglut.a(libglut_la-freeglut_init.o): In function `glutInit': 
/usr/lib/libglut.a(libglut_la-freeglut_init.o): In function `glutInit': 
/usr/lib/libglut.a(libglut_la-freeglut_init.o): In function `glutInit': 
/usr/lib/libglut.a(libglut_la-freeglut_init.o): In function `glutInit': 
/usr/lib/libglut.a(libglut_la-freeglut_init.o): In function `glutInit': 
/usr/lib/libglut.a(libglut_la-freeglut_init.o): In function `glutInit': 
/usr/lib/libglut.a(libglut_la-freeglut_init.o): In function `glutInit': 
/usr/lib/libglut.a(libglut_la-freeglut_init.o): In function `glutInit': 
/usr/lib/libglut.a(libglut_la-freeglut_init.o): In function `glutInit': 
/usr/lib/libglut.a(libglut_la-freeglut_init.o): In function `fgDeinitialize': 
/usr/lib/libglut.a(libglut_la-freeglut_init.o): In function `fgDeinitialize': 
/usr/lib/libglut.a(libglut_la-freeglut_init.o): In function `fgDeinitialize': 
/usr/lib/libglut.a(libglut_la-freeglut_main.o): In function `fghcbDisplayWindow': 
/usr/lib/libglut.a(libglut_la-freeglut_main.o): In function `fghcbDisplayWindow': 
/usr/lib/libglut.a(libglut_la-freeglut_main.o): In function `fghcbDisplayWindow': 
/usr/lib/libglut.a(libglut_la-freeglut_main.o): In function `glutMainLoopEvent': 
/usr/lib/libglut.a(libglut_la-freeglut_main.o): In function `glutMainLoopEvent': 
/usr/lib/libglut.a(libglut_la-freeglut_main.o): In function `glutMainLoopEvent': 
/usr/lib/libglut.a(libglut_la-freeglut_main.o): In function `glutMainLoopEvent': 
/usr/lib/libglut.a(libglut_la-freeglut_main.o): In function `glutMainLoopEvent': 
/usr/lib/libglut.a(libglut_la-freeglut_main.o): In function `glutMainLoopEvent': 
/usr/lib/libglut.a(libglut_la-freeglut_main.o): In function `glutMainLoop': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fghGetVMaxExtent': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o):(.text+0xf93): more undefined references to `glVertex2i' follow 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
make[2]: Leaving directory `/home/tirengarfio/programacion/3Ded' 
make[1]: Leaving directory `/home/tirengarfio/programacion/3Ded' 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o):(.text+0x1043): more undefined references to `glVertex2i' follow 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu': 
/usr/lib/libglut.a(libglut_la-freeglut_state.o): In function `fghGetConfig': 
/usr/lib/libglut.a(libglut_la-freeglut_state.o): In function `glutGetModeValues': 
/usr/lib/libglut.a(libglut_la-freeglut_state.o): In function `glutGetModeValues': 
/usr/lib/libglut.a(libglut_la-freeglut_state.o): In function `glutGetModeValues': 
/usr/lib/libglut.a(libglut_la-freeglut_state.o): In function `glutDeviceGet': 
/usr/lib/libglut.a(libglut_la-freeglut_state.o): In function `glutGet': 
/usr/lib/libglut.a(libglut_la-freeglut_state.o): In function `glutGet': 
/usr/lib/libglut.a(libglut_la-freeglut_state.o): In function `glutGet': 
/usr/lib/libglut.a(libglut_la-freeglut_state.o): In function `glutGet': 
/usr/lib/libglut.a(libglut_la-freeglut_state.o): In function `glutGet': 
/usr/lib/libglut.a(libglut_la-freeglut_state.o): In function `glutGet': 
/usr/lib/libglut.a(libglut_la-freeglut_state.o): In function `glutGet': 
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `toggle_fullscreen': 
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `toggle_fullscreen': 
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `toggle_fullscreen': 
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `glutPopWindow': 
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `glutPushWindow': 
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `glutPositionWindow': 
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `glutSetIconTitle': 
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `glutSetIconTitle': 
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `glutSetWindowTitle': 
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `glutSetWindowTitle': 
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `glutIconifyWindow': 
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `glutIconifyWindow': 
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `glutHideWindow': 
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `glutHideWindow': 
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `glutHideWindow': 
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `glutShowWindow': 
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `glutShowWindow': 
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `fgCloseWindow': 
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `fgCloseWindow': 
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `fgCloseWindow': 
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `fghCreateNewContext': 
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `fgSetWindow': 
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `fgChooseFBConfig': 
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `fgChooseFBConfig': 
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `fgChooseFBConfig': 
... 
collect2: ld returned 1 exit status 
make[2]: *** [dist/Debug/GNU-Linux-x86/3ded] Error 1 
make[1]: *** [.build-conf] Error 2 
make: *** [.build-impl] Error 2 

BUILD FAILED (exit value 2, total time: 1s) 

任何想法?

的Ubuntu 10.04/Netbeans的6.9.1

回答

2

假设你已经安装在系统上的所有共享库,对于C源代码:

gcc hello.c -o hello -lGL -lglut -lGLU 

对于C++代码:

g++ hello.cpp -o hello -lGL -lglut -lGLU 

不要使用静态库文件.a如果你真的不需要。否则你必须自己去满足这些依赖关系。

3

的线索是在这里: more undefined references to 'glVertex2i' follow

基本上你需要对OpenGL库以及链接(glVertex2i是一个OpenGL函数),过剩不提供OpenGL的功能,只有附加的功能,让生活变得轻松。

尝试在命令行中添加-lGL(最后)。

编辑:这只适用于静态版本(/usr/lib/libglut.a)。共享对象版本知道如何找到libGL,因此您可以简单地使用-lglut而不是/usr/lib/libglut.a。

相关问题