PDA

View Full Version : [MinGW] linkare con glut32.lib


Bonfo
27-01-2007, 16:02
Sto veramente scocomerando !!! :muro: :muro: :muro:
Non riesco a linkare con glut32.lib

Mi sono basato su questo link:
http://www.mingw.org/MinGWiki/index.php/Glut?PHPSESSID=54cdd9e3099a2a6b87d403eed

Ecco la linea che uso:

gcc -D_STDCALL_SUPPORTED -D_M_IX86 -o modelViewer.exe model_viewer.c glu
t32.lib -lopengl32 -lglu32


ma continuo ad avere questi problemi:


C:/Profiles/Valerio/LOCALS~1/Temp/cc8ibaaa.o(.text+0x1c):model_viewer.c: undefined reference to `__glutInitWithExit@12'
C:/Profiles/Valerio/LOCALS~1/Temp/cc8ibaaa.o(.text+0x3c):model_viewer.c: undefined reference to `__glutCreateWindowWithExit@8'
C:/Profiles/Valerio/LOCALS~1/Temp/cc8ibaaa.o(.text+0x5c):model_viewer.c: undefined reference to `__glutCreateMenuWithExit@8'
C:/Profiles/Valerio/LOCALS~1/Temp/cc8ibaaa.o(.text+0xd3):model_viewer.c: undefined reference to `glutSwapBuffers@0'
C:/Profiles/Valerio/LOCALS~1/Temp/cc8ibaaa.o(.text+0xe0):model_viewer.c: undefined reference to `glutPostRedisplay@0'
C:/Profiles/Valerio/LOCALS~1/Temp/cc8ibaaa.o(.text+0x511):model_viewer.c: undefined reference to `glutInitDisplayMode@4'
C:/Profiles/Valerio/LOCALS~1/Temp/cc8ibaaa.o(.text+0x528):model_viewer.c: undefined reference to `glutInitWindowSize@8'
C:/Profiles/Valerio/LOCALS~1/Temp/cc8ibaaa.o(.text+0x546):model_viewer.c: undefined reference to `glutDisplayFunc@4'
C:/Profiles/Valerio/LOCALS~1/Temp/cc8ibaaa.o(.text+0x555):model_viewer.c: undefined reference to `glutIdleFunc@4'
C:/Profiles/Valerio/LOCALS~1/Temp/cc8ibaaa.o(.text+0x5b7):model_viewer.c: undefined reference to `glutMainLoop@0'
collect2: ld returned 1 exit status


I file delle GLUT (l' header file, il .lib, il .def e la .dll) sono tutti nella stessa cartella dove c'e' il file sorgente.

Non so piu' cosa provare :muro: :muro: :muro:

:help:

kk3z
27-01-2007, 20:28
Per quanto mi ricordo, Mingw non può usare file *.lib, ma deve usare per forza file lib*.a. Mi sembra ci sia un tool da qualche parte che permette di convertire tra uno e l'altro, spè che lo cerco...

EDIT: prova questo: reimp (http://mywebpage.netscape.com/yongweiwu/reimp_new.zip)
uso:
reimp glut.lib

EDIT2: ma adesso che ho guardato nella mia "installazione" di mingw è già disponibile sia un libglut.a sia un libglut32.a...quindi basterebbe usare -lglut32 come hai fatto con gli altri file...

Bonfo
27-01-2007, 23:39
EDIT2: ma adesso che ho guardato nella mia "installazione" di mingw è già disponibile sia un libglut.a sia un libglut32.a...quindi basterebbe usare -lglut32 come hai fatto con gli altri file...


$ gcc -D_STDCALL_SUPPORTED -D_M_IX86 -o modelViewer.exe model_viewer.c -lopengl32 -lglu32 -lglut32
D:/Profiles/b08471/LOCALS~1/Temp/ccQzcaaa.o(.text+0x1c):model_viewer.c: undefined reference to `__glutInitWithExit@12'
D:/Profiles/b08471/LOCALS~1/Temp/ccQzcaaa.o(.text+0x3c):model_viewer.c: undefined reference to `__glutCreateWindowWithExit@8'
D:/Profiles/b08471/LOCALS~1/Temp/ccQzcaaa.o(.text+0x5c):model_viewer.c: undefined reference to `__glutCreateMenuWithExit@8'
collect2: ld returned 1 exit status


Ecco invocazione e risultato, ma proprio come c'e' scritto nel link che ho messo nel primo post:

E:\TEMP/ccMMoggb.o(.text+0x1c):t10.c: undefined reference to `__glutInitWithExit@12'
E:\TEMP/ccMMoggb.o(.text+0x3e):t10.c: undefined reference to `__glutCreateWindowWithExit@8'
E:\TEMP/ccMMoggb.o(.text+0x60):t10.c: undefined reference to `__glutCreateMenuWithExit@8'

If these are the only three undefined references then you probably linked with -lglut32 instead of glut32.lib.


Per quello usavo glut32.lib ;)

kk3z
28-01-2007, 14:18
Hai provato ad usare reimp? O ad aggiornare i binutils di mingw?

yorkeiser
29-01-2007, 09:42
Se sei sotto win usa glu32 e glaux. Di seguito ti riporto un esempio di linking che faccio con lcc

lcclnk.exe -o lesson8.exe -subsystem windows -s lesson8.obj opengl32.lib glu32.lib glaux.lib

Gli header da includere nel sorgente sono questi:

#include <windows.h> // Header File For Windows
#include <stdio.h> // Header File For Standard Input/Output
#include <gl\gl.h> // Header File For The OpenGL32 Library
#include <gl\glu.h> // Header File For The GLu32 Library
#include <gl\glaux.h> // Header File For The Glaux Library

Bonfo
29-01-2007, 11:18
Ok...grazie mille!

Ora non ho molto tempo...stasera provo e poi vi racconto i risultati.