Пытаюсь скомпилировать мое первое приложение opengl / mesa - PullRequest
1 голос
/ 28 мая 2011

Я пытаюсь скомпилировать свое первое приложение openGL.

Это мой код:

#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 ]

3 голосов
/ 28 мая 2011

Подсказка здесь: more undefined references to 'glVertex2i' follow

По сути, вам также нужно связываться с библиотекой OpenGL (glVertex2i - это функция OpenGL), перенасыщение не обеспечивает функции OpenGL, только дополнительные функции, чтобы сделать жизньпросто.

Попробуйте добавить -lGL в командную строку (в конце).

РЕДАКТИРОВАТЬ: Это верно только для статической версии (/usr/lib/libglut.a).Версия общего объекта знает, как найти libGL, поэтому вы можете просто использовать -lglut вместо /usr/lib/libglut.a.

2 голосов
/ 28 мая 2011

Если в вашей системе установлены все общие библиотеки, для исходного кода C:

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

Для кода C ++:

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

Не используйте статическиебиблиотеки files.a , если вам это действительно не нужно.В противном случае вам придется удовлетворять эти зависимости самостоятельно.

...