Jak zbudować aplikację, która wymaga zarówno libstdc ++. So.5, jak i libstdc ++. So.6?

Chcę to przedmawiać za pomocą tego ważnego zawiadomieniaNie jestem programistą C / C ++i wiembardzo mało o tym, jak działa powiązanie bibliotek w C.

Nasz kod używa libstdc ++. So.6 (gcc 3.4, myślę). Mamy prekompilowane biblioteki innych producentów (zamknięte źródła), które używają libstdc ++. So.5 (myślę, że gcc 2. coś lub 3.2). To jest na Linuksie. Mamy zarówno wersję .a, jak i .so biblioteki stron trzecich.

Czy możliwe jest zbudowanie naszej aplikacji przy użyciu bibliotek innych firm? W jaki sposób? Czy jest możliwe zbudowanie / uruchomienie naszej aplikacji bez zainstalowania libstdc ++. So.5 naszych maszyn, jak?

Jeśli zapomniałem o pewnych krytycznych informacjach, daj mi znać - prawie nie wiem, co jest związane z tym materiałem. Zdaję sobie sprawę, że pełna odpowiedź prawdopodobnie nie będzie możliwa; Naprawdę szukam wskazówek i wskazówek. Łącze statyczne to, dynamiczne, przebuduj to, wstępnie zbuduj i tak, przełącz się na wersję x lub dowiązanie symboliczne do quizdoodle itp.

Aktualizacja:

Próbowaliśmy użyćdlopen zRTLD_LOCAL oddzielić bibliotekę zewnętrzną od reszty naszej aplikacji. To wydaje się miećprzeważnie zadziałało, jednak z nieznanych powodów mamy duże wycieki pamięci. Podejrzewamy to, kiedy dzwonimydlopen, biblioteka stron trzecich ciągnie takie symbole jakmalloc z już załadowanego .so.6 i wszystko się zaplątuje.

Na chichoty próbowaliśmy umieścić bibliotekę innej firmyLD_PRELOAD, następnie uruchomiliśmy naszą aplikację, a przecieki pamięci wydają się całkowicie zniknąć.

questionAnswers(4)

yourAnswerToTheQuestion