Linux - kiedy program wymaga zlinkowania z konkretną wersja libstdc++/libc

0

Czasami, program wymaga zlinkowania z bibliotekami w wersjach takich samych jak w środowisku gdzie był zbudowany, np: budujemy program na maszynia z gcc 4.9.2 (libstdc++.so.6.0.20), a potem uruchamiamy na maszynie wirtualnej z gcc 4.6.3 (libstdc++.so.6.0.16). Aby program wystartował trzeba dostarczyć libstdc++.so.6.0.20 , czasami też nowszą wersję libc, ustawić co trzeba przez LD_PRELOAD (bibliteka ld-linux*) i LD_LIBRARY_PATH (pozostałe biblioteki). Z takimi sytuacjami zwykle spotykałem się przy budowaniu większych projektów, których nie byłem autorem. Osobiście dla swoich program C/C++ nie udało mi się wygenerowac sytuacji gdzie program potrzebuje libstdc++/libc ze środowiska gdzie był zbudowany. Czy ktoś z Was mógłby podać jakieś fragmenty kodu, użycia bilioteki standardowej itp, które sprawią, że program będzie wymagał wersji libstdc++/libc ze środowiska gdzie był zbudowany ?

0

To działa tylko wtedy gdy program został zbudowany przy użyciu glibc nowszego niż dostępny na obecnej platformie, w drugą stronę nie ma takiej potrzeby bo glibc zachowuje wsteczną kompatybilność http://www.etalabs.net/compare_libcs.html

1 użytkowników online, w tym zalogowanych: 0, gości: 1