Portál AbcLinuxu, 14. května 2025 00:42

Dotaz: statické linkování

22.11.2009 02:06 Pavel Palivec
statické linkování
Přečteno: 362×
Odpovědět | Admin
Zdravím vespolek,

mám c++ program hotový pro PC (odladěno na Ubuntu). Teď bych ho potřeboval přeložit pro embedded PC Advantech (procesor AMD Geode GX 533). Na něm běží Advantech Linux 2.3, což je: "a migration production from Fedora Core 4 using kernel 2.6.17-1.2142_FC4".

Když program přeložím normálně, chybí na embedded PC spousta knihoven; (program používá tyhle - výstup programu ldd): linux-gate.so.1 => (0xb807d000) libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb8052000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7f63000) libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7f3c000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7f2d000) libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7dca000) /lib/ld-linux.so.2 (0xb807e000)

když program slinkuju s přepínačem -static, linker hlásí následující varování:

dataSender.o: In function `dataSender::prepareSocket()': dataSender.cpp:(.text+0x9b9): warning: Using 'gethostbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking

Program se na embedded PC spustí, ale skončí opravdu neúspěchem funkce gethostbyname().

Poradí mi prosím někdo někdo, jak mám potřebné knihovny nainstalovat, ať už když budu program linkovat normálně, nebo staticky?

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

Odpovědi

22.11.2009 10:59 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: statické linkování
Odpovědět | | Sbalit | Link | Blokovat | Admin
IMHO to je dáno mechanizmem NSS, který opravdu až do doby spuštění nemůže vědět odkud má ty jména brát (/etc/hosts, DNS, LDAP, ... ?). Takže staticky to sice slinkujete, ale při spuštění bude potřebovat příslušné .so soubory "s sebou".

Pokud chcete opravdu něco malého a statického, vemte si uclibc.
In Ada the typical infinite loop would normally be terminated by detonation.

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.