Portál AbcLinuxu, 27. dubna 2024 02:27


Dotaz: Staticky linkovaná binárka

18.2.2011 11:50 Matlák
Staticky linkovaná binárka
Přečteno: 162×
Odpovědět | Admin
Dobrý den. Napsal jsem poměrně jednoduchý program a chtěl bych jej udělat přenositelný, tzn.vyrobit statickou binárku. Z nějakého důvodu se mi to ale nedaří, viz:
$ gcc -static -lm tabulkogen.c -o tabulkogen
/tmp/cc8Piffn.o(.text+0xd5): In function `cvn':
: undefined reference to `pow'
/tmp/cc8Piffn.o(.text+0x167): In function `cvn':
: undefined reference to `pow'
/tmp/cc8Piffn.o(.text+0x1cc): In function `cvn':
: undefined reference to `log'
/tmp/cc8Piffn.o(.text+0x1ee): In function `cvn':
: undefined reference to `log'
/tmp/cc8Piffn.o(.text+0x25d): In function `cvn':
: undefined reference to `pow'
/tmp/cc8Piffn.o(.text+0x29a): In function `cvn':
: undefined reference to `pow'
collect2: ld returned 1 exit status
Systém se tváří jako by knihovna nebyla přilinkována, nebo chyběla její statická verze. Ta tam ovšem je a pravděpodobně i obsahuje výše vypsanou umocňovací funkci, viz
$ nm /usr/lib/libm.a|grep pow
e_pow.o:
00000000 T __ieee754_pow
00000000 W pow10
00000000 T __pow10
w_pow.o:
         U __ieee754_pow
00000000 W pow
00000000 T __pow
s_cpow.o:
00000000 W cpow
00000000 T __cpow
e_powf.o:
00000000 T __ieee754_powf
00000000 W pow10f
00000000 T __pow10f
w_powf.o:
         U __ieee754_powf
00000000 W powf
00000000 T __powf
s_cpowf.o:
00000000 W cpowf
00000000 T __cpowf
e_powl.o:
00000000 T __ieee754_powl
00000000 W pow10l
00000000 T __pow10l
w_powl.o:
         U __ieee754_powl
00000000 W powl
00000000 T __powl
s_cpowl.o:
00000000 W cpowl
00000000 T __cpowl
slowpow.o:
Dělám něco špatně? Mám kompilátoru nějak říct, co přesně po něm chci? Potřebuju aby to ideálně fungovalo se všemi knihovnami od kterých mám ".a" soubory...

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

18.2.2011 12:12 Matlák
Rozbalit Rozbalit vše Re: Staticky linkovaná binárka
Odpovědět | | Sbalit | Link | Blokovat | Admin
tak už jsem na to přišel. Ach ta skleróza :-D knihovny mají svoje závislosti... a musí se kompilátoru nacpat ručně. (tj.celé cesty k .a souborům místo jednoduchého -lknihovna)..

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.