On jeudi 28 mai 2009, Patrick Dupre wrote:
> Je ne comprends pas le "linkage" de gcc !
> J'ai cree ma propre librairie f2c mais lorsque je fais:
> gcc toto.o new_cwerf.o my_cwerf.o -o toto -lm -L. -lf2c
>
> libf2c.a est dans le directory courant
>
> j'ai un message d'erreur:
> my_cwerf.o: In function `cwerf':
> /home/pdupre/maths/my_cwerf.c:(.text+0x58f): undefined reference to
> `__libm_sse2_expf'
> /usr/lib/gcc/i386-redhat-linux/4.3.2/../../../libf2c.so: undefined
> reference to `MAIN__'
> collect2: ld returned 1 exit status
>
> Si je fais:
> icc toto.o new_cwerf.o my_cwerf.o -o toto -lm -L. -lf2c
>
> Cela se passe tres bien.
>
> Il semblerait que je ne parvienne pas a informer le linker que la
> librarie est locale avec gcc alos que icc comprends tres bien.
> (il semblerait que le f2c-20031026-3.0.1.fc10.i386 est un serieux
> probleme, peut-etre devrais-je recompiler).
>
> Des idees ?
J4ai eu ce genre de problème, il y a longtmeps. La solution était de linker
avec le compilo fortran, plutôt qu'avec le compilo C ; mais c'était sur
plateforme IRIX et VMS...
--
Frédéric
http://www.gbiloba.org