[Kde-devel-es] Qtimer y librerias
Miguel de Benito
lists at 8027.org
Mon May 30 20:16:47 CEST 2005
On Sunday 29 May 2005 13:42, hacklet wrote:
> Hola de nuevo,
Buenas,
me temo que esto puede que no te sea de mucha ayuda, pero es lo que se me
ocurre...
> aqui os pongo como compila con el g++:
>
> g++ -o ../bin/qt_program main.o pci7248.o pci7248form.o moc_pci7248.o
> moc_pci7248form.o -L/home/let/proyecto/src/lib -L/usr/share/qt3/lib
> -L/usr/X11R6/lib -lraptor -lqt-mt -lXext -lX11 -lm -lpthread
puedes probar el mismo comando g++, pero en vez de -lraptor, poner la
librería como un objeto más:
g++ -o ../bin/qt_program main.o pci7248.o pci7248form.o moc_pci7248.o
moc_pci7248form.o lib/libraptor.a -L/usr/share/qt3/lib
-L/usr/X11R6/lib -lqt-mt -lXext -lX11 -lm -lpthread
si esto funciona es que efectivamente la librería contiene lo que
necesitas. Esto debería ser así, porque lo que pones en tu cabecera:
typedef short I16;
typedef unsigned short U16;
I16 Register_Card (U16 CardType, U16 card_num);
y el prototipo de la función devuelto en el error:
undefined reference to `Register_Card(unsigned short, unsigned short)
concuerdan. De modo que el problema es cómo se enlaza...
En teoría, cuando se invoca a ld, para que enlace forzosamente una
librería estática se puede usar -Bstatic (o -aarchive) seguido de -lnombre
(-lraptor). Luego se puede volver a -Bdynamic (o -ashared) para el resto
(esto permite ser selectivo, al contrario que si le pasas -static a g++):
ld -o ../bin/qt_program main.o pci7248.o pci7248form.o moc_pci7248.o
moc_pci7248form.o -L/home/let/proyecto/src/lib -L/usr/share/qt3/lib
-L/usr/X11R6/lib -Bstatic -lraptor -Bdynamic -lqt-mt -lXext -lX11 -lm
-lpthread
Claro, que como se está invocando a ld indirectamente mediante g++,
tendrás que pasarle los parámetros precediéndolos de
-Wl,[parámetros]
De todos modos, todo este follón no tiene mucho sentido si sólamente
existe un fichero libraptor.a y no además un .so, pues el enlazador debería
encontrarlo y determinar automáticamente que debe enlazarlo
estáticamente... Mmmm, no sé...
Intenta urgar entre las opciones de proyecto de QT, y si no siempre puedes
intentar compilar tu librería como dinámica y volverlo a intentar. Ya nos
contarás.
Saludos,
--
_________________
Miguel de Benito
http://8027.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://mail.kde.org/pipermail/kde-devel-es/attachments/20050530/89d28ebe/attachment.pgp
More information about the Kde-devel-es
mailing list