2011-12-18 20 views
7
gcc -lGL -lGLU -lglut light.c 
/tmp/ccfuthSi.o: In function `init': 
light.c:(.text+0x72): undefined reference to `glClearColor' 
light.c:(.text+0x7e): undefined reference to `glShadeModel' 
light.c:(.text+0x99): undefined reference to `glMaterialfv' 
light.c:(.text+0xb4): undefined reference to `glMaterialfv' 
light.c:(.text+0xcf): undefined reference to `glLightfv' 
light.c:(.text+0xdb): undefined reference to `glEnable' 
light.c:(.text+0xe7): undefined reference to `glEnable' 
light.c:(.text+0xf3): undefined reference to `glEnable' 
/tmp/ccfuthSi.o: In function `display': 
light.c:(.text+0x107): undefined reference to `glClear' 
light.c:(.text+0x121): undefined reference to `glutSolidSphere' 
light.c:(.text+0x126): undefined reference to `glFlush' 
/tmp/ccfuthSi.o: In function `reshape': 
light.c:(.text+0x150): undefined reference to `glViewport' 
light.c:(.text+0x15c): undefined reference to `glMatrixMode' 
light.c:(.text+0x161): undefined reference to `glLoadIdentity' 
light.c:(.text+0x1bf): undefined reference to `glOrtho' 
light.c:(.text+0x217): undefined reference to `glOrtho' 
light.c:(.text+0x223): undefined reference to `glMatrixMode' 
light.c:(.text+0x228): undefined reference to `glLoadIdentity' 
/tmp/ccfuthSi.o: In function `main': 
light.c:(.text+0x268): undefined reference to `glutInit' 
light.c:(.text+0x274): undefined reference to `glutInitDisplayMode' 
light.c:(.text+0x288): undefined reference to `glutInitWindowSize' 
light.c:(.text+0x29c): undefined reference to `glutInitWindowPosition' 
light.c:(.text+0x2a9): undefined reference to `glutCreateWindow' 
light.c:(.text+0x2ba): undefined reference to `glutDisplayFunc' 
light.c:(.text+0x2c6): undefined reference to `glutReshapeFunc' 
light.c:(.text+0x2d2): undefined reference to `glutKeyboardFunc' 
light.c:(.text+0x2d7): undefined reference to `glutMainLoop' 

ご覧のとおり、必要なパラメータをgccに渡します。なぜそれは動作しません? Linux Mint 12.GCC-ldはopenglとリンクしていません

答えて

16

本当によくある質問です(ここで何度も尋ねられています)。議論の順序はリンク時に重要です。図書館は最後に行かなければなりません。あなたは実行する必要があります

gcc -Wall -g light.c -lGL -lGLU -lglut -o light 
+0

NB:私は完全にライブラリの順序についてはよく分かりません。あなたは正しいものを見つけなければなりません! –

+1

共有ライブラリシステムの場合、glutはすでにシンボルハウスキーピングがすべて完了しており、light.cを満たすことのみを試みているので、問題はありません。 –

関連する問題