2011-05-27 34 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。

相關問題