2011-05-27 3 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 в командную строку (в конце).

EDIT: Это относится только к статической версии (/usr/lib/libglut.a). Общая версия объекта знает, как найти libGL, поэтому вы можете просто использовать -lglut вместо /usr/lib/libglut.a.

Смежные вопросы