/ / libtool: link: ostrzeżenie:… / libstdc ++. la wydaje się być przeniesiony - libtool

libtool: link: warning: ... / libstdc ++. la wydaje się być przeniesiony - libtool

Otrzymałem wiele ostrzeżeń o tym formularzu (dodano podział wiersza dla czytelności):

libtool: link: warning: `/usr/local/gcc-5.2.0/lib/gcc/x86_64-unknown-linux-gnu/
5.2.0/../../../../lib64/libstdc++.la" seems to be moved

i nie mogłem dowiedzieć się, dlaczego ostrzeżenie jest ważne. Pamiętaj, że obie ścieżki prowadzą do tej samej lokalizacji.

Odpowiedzi:

2 dla odpowiedzi № 1

Okazuje się, że niestandardowa instalacja gcc-5.2.0 zainstalowała libstdc ++. La z następującymi libdir linia:

libdir="/usr/local/gcc-5.2.0/lib/../lib64"

Ale kiedy libtool łączy się z libstdc++.la, wykorzystuje ścieżkę zgłoszoną w ostrzeżeniu (która również jest częścią g++ --print-search-dirs wyjście - prawdopodobnie jest to związane).

Rozwiązaniem jest zmiana libdir wartość w libstdc++.la do dokładnej ścieżki, którą libstdc++.la jest przeszukiwany przez libtool:

libdir="/usr/local/gcc-5.2.0/lib/gcc/x86_64-unknown-linux-gnu/5.2.0/../../../../lib64"

Najwyraźniej libtool nie „normalizuje ani nie kanonizuje ścieżek i porównuje je jako ciągi, a więc błąd. Zobacz także pokrewny wątek na liście mailingowej libtool z 2006 roku.