Reputation: 31739
I'm trying to compile my first program openGL app.
This is my code:
#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;
}
I have then linked /usr/lib/libglut.a
to the project.
When I try to compile I'm getting this error:
"/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)
Any idea?
Ubuntu 10.04/Netbeans 6.9.1
Upvotes: 1
Views: 654
Reputation: 93468
Assuming you have all the shared libraries installed on your system, for a C source code:
gcc hello.c -o hello -lGL -lglut -lGLU
For a C++ code:
g++ hello.cpp -o hello -lGL -lglut -lGLU
Don't use the static libraries files.a if you really don't need to. Else you'll have to satisfy those dependencies on your own.
Upvotes: 2
Reputation: 9490
The clue is here:
more undefined references to 'glVertex2i' follow
Basically you need to link against the OpenGL library as well (glVertex2i is an OpenGL function), glut doesn't provide OpenGL functions, only additional functions to make life easy.
Try adding -lGL to the command line (at the end).
EDIT: This is only true for the static version (/usr/lib/libglut.a). The shared object version knows how to find libGL, so you can simply use -lglut instead of /usr/lib/libglut.a.
Upvotes: 3