libstdc ++ 64-Bit und 32-Bit-Version auf der gleichen Maschine
-
22-08-2019 - |
Frage
Ich versuche, für eine 64-Bit-Plattform, die eine Version meiner Software zu überqueren kompilieren. Kann ich die 32-Bit und 64-Bit-Version von libstdc ++, ohne zu viel Sorgen auf der gleichen Maschine installiert zu brechen meinem Linux installieren. Das O ist 32bit ubuntu.
Ich habe Kreuz nicht kompilierte vor und wollte nur, dass überprüfen, ob ich meinen CFLAGS und LDFLAGS für die entsprechende CPU soll ich in Ordnung sein, wenn ich die richtigen Versionen von libstdc ++ installiert ist.
Ich überprüfte eine 64-Bit-Version von Ubuntu aber dies hat einen symbolischen Link
lib64 -> lib
Dies würde vermasselt viel, wenn dies der Fall auf einer 32-Bit-Maschine ist auch jemand weiß, wie dies zu sortieren?
Ich schlage den folgenden Fehler in dem Moment
[exec] /usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.2.4/libstdc++.so [exec] /usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.2.4/libstdc++.a when searching for -lstdc++ [exec] /usr/bin/ld: skipping incompatible
und so weiter bis
[exec] /usr/bin/ld: cannot find -lstdc++
[exec] collect2: ld returned 1 exit status
Welche aufgrund Tatsache scheint zu sein, ich habe nicht die 64-Bit-Version von libstdc ++
Lösung
Sicher Sie können.
Nur sie in /usr/lib
und /usr/lib64
setzen sind.
Kann es nicht auf Ubuntu
überprüfen, aber auf Fedora
sie bekommen es direkt aus den Paketen:
[~#] repoquery -q -l libstdc++.i386
/usr/lib/libstdc++.so.6
/usr/lib/libstdc++.so.6.0.10
[~#] repoquery -q -l libstdc++.x86_64
/usr/lib64/libstdc++.so.6
/usr/lib64/libstdc++.so.6.0.10