Błąd "undefined reference to" podczas konsolidacji programu korzystającego jednocześnie z dwóch bibliotek

0

Dobry wieczór,

chciałbym zapytać o dobrą radę odnośnie efektywnego sposobu postępowania w pewnym przypadku, który postaram się teraz krótko i rzeczowo opisać.

Próbuję napisać aplikację w języku C++ (środowisko Linux) i postanowiłem wykorzystać w niej dwie zewnętrzne biblioteki.

Jeżeli program jest kompilowany z dołączoną co najwyżej jedną biblioteką, to żaden problem nie występuje. Natomiast, kiedy buduję program z dołączonymi dwiema bibliotekami jednocześnie, to podczas etapu konsolidacji pojawiają się błędy typu: undefined reference to .

Każdą z tych bibliotek kompilowałem ze źródeł w tym samym środowisku za pomocą dołączonych do nich skonfigurowanych systemów budowania.

Wiem, że podałem jedynie dość abstrakcyjny opis sytuacji, ale mam pytanie, czy na jego podstawie można wstępnie 'zgadnąć' co może stanowić przyczynę wspomnianych błędów? Czy w szczególności mogą to być różne wersje tej samej biblioteki wykorzystywane w tych dwóch bibliotekach, które dołączam, albo to z jakimi parametrami była przeprowadzana kompilacja tych dwóch bibliotek?

Będę bardzo wdzięczny nawet za najmniejszą wskazówkę. :)

2

"undefined reference to" Dobrze, że nie podałeś do czego, bo to by tylko ułatwiło sprawę. W sumie mogłeś napisać, że pojawia się "error" żeby zwiększyć atmosferę tajemniczości.

0

Kontynuując ten opis zgaduję że jesteś literatem porwanym przez reżim Kim Dzong Un do konstrukcji bomby wodorowej i dlatego nie możesz nam przedstawić ani komunikatu błędu ani tym bardziej kodu.
W takim razie opisz może jak znajdujesz kimchi albo jaka u Was pogoda?

1

undefined reference to
Wklej w google błąd + ewentualnie nazwę referencji, której nie widzi linker.

0

Dziękuję za wszystkie odpowiedzi. :)

Przyznaję, że zamieszczony przeze mnie opis problemu nie jest w żaden sposób wyczerpujący i z całą pewnością nie pozwala na jednoznaczne określenie jego przyczyny, ale jednocześnie wydaje mi się, że fakt występowania takich błędów jedynie w przypadku, gdy wykorzystywane są obie biblioteki stanowi już jakąś przesłankę. Miałem nadzieję, że jest to na tyle charakterystyczne zachowanie, że można coś z niego wywnioskować. Mój błąd.

Nie zamieściłem oryginalnego komunikatu z konsolidatora oraz kodu źródłowego, bo pomyślałem, że nie jest to wskazane. Kompilacja programu oraz bibliotek na moim komputerze trwała kilka godzin, a biblioteki nie udostępniają aktualnych wersji binarnych. Dla uzupełnienia, wszystkie niezdefiniowane symbole (około 100) stanowiły metody pochodzące z jednej z dołączanych bibliotek.

Chociaż nie jest to jeszcze koniec moich zmagań z tą aplikacją, to przyczyną błędów podczas konsolidacji okazało się to, że jedna z bibliotek korzystała z libc++, a druga z libstdc++.

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