Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: Dogmeat 24 Dubna 2010, 16:17:22
-
Zdravím,
po nějaké době jsem zde opět s jedním problémem, se kterým bych potřeboval poradit.
Kompiluji aplikaci pod Ubuntu 8.04 a narazil jsem na problém, že takto zkompilovaná aplikace mi odmítá běžet na starším debianu, jelikož je vytvořená pomocí novějšího gcc a glibc. Lze nějakým použitelným způsobem zkompilovat mou aplikaci pro tento starší glibc i na nějaké novější distirbuci Ubuntu (a případně i jiné distribuci s novějším glibc)?
Ideální by bylo, pokud by byla schopna běžet na všech podporovaných distribucích (tzn. podporovaných verzích Debianu, Red Hatu, prostě pro tu nejstarší podporovanou verzi glibc).
Díky za tipy :)
-
No gcc s tím nemá určitě co dělat.... glibc... popřípadě další knihovny...
Velmi logicky bude potřeba starších verzí ke kompilaci, aby to na těch starších vlastně běželo... buď udržovat v systému x kopií těchto knihoven a vždy uvádět cesty k nim.... nebo mít více systémů (na těch oněch co to má běžet) a kompilovat to na něch... ;)
-
Ideální by pro mne bylo mít více těchto knihoven v systému. Ovšem jak je do něj dostanu - respektive odkud je nejlepší je stáhnout a jak je nainstalovat tak, aby zůstaly i původní knihovny?
A jak je poté předám kompileru, aby je úspěšně použil?
Nikdy jsem nic takového nedělal a google není moc nápomocný v této oblasti :)
-
Ideální by pro mne bylo mít více těchto knihoven v systému. Ovšem jak je do něj dostanu - respektive odkud je nejlepší je stáhnout a jak je nainstalovat tak, aby zůstaly i původní knihovny?
A jak je poté předám kompileru, aby je úspěšně použil?
Nikdy jsem nic takového nedělal a google není moc nápomocný v této oblasti :)
Stáhnout deb balíček... systém by to měl umět rozbalit jestli se nepletu...
potom v
/usr/include jsou includované soubory... a příklad:
- teď tam je /usr/lib/glibc/glibc.h
- inluduješ pomocí #include </glibc/glibc.h>
- rozbalíš si třeba na plochu starší glibc a do /usr/include vytvoříš složku glibc2 (pak logicky naincluduješ)
- pokud to používá i *.so knihovny bude to již trochu horší... ale ne nemožné... vždy se přes -L tuším vkládá i tato knihovna...takže bude nutné i tuto knihovnu vytvořit jako dvojí a přes ten parametr komplilace vkládat tu pravou
PS: nikdy jsem to nezkoušel.... ale mělo by to takto fungovat... každopádně to nebude moc lehké... třeba qt3 a qt4 se na tomto principu udržeju ve více verzích...zato třeba libc bude asi oříšek větší ;D
-
Díky, při chvilce vyzkouším a snad to poběží :)