2011-05-27 5 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のソースコードのために、システムにインストールされたすべての共有ライブラリを持っていると仮定すると:C++コードの場合

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

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の検索方法を知っているので、単に/usr/lib/libglut.aの代わりに-lglutを使用するだけです。