Wie ändere ich die Version von arm-linux-gnueabihf-gcc?

Wie ändere ich die Version von arm-linux-gnueabihf-gcc?

Ich möchte Version 5 von verwenden arm-linux-gnueabihf-gcc.

Also habe ich es installiert über:

apt-get install gcc-5-arm-linux-gnueabihf

Aber wenn ich gcc --versiondas jetzt mache, wird mir angezeigt, dass es Version 7 ist.

Wie weise ich es an, die ältere Version zu verwenden?

Oder muss ich die neuere Version komplett deinstallieren?

Antwort1

Sie können arm-linux-gnueabihf-gcc-5anstelle von ausführen gcc.

Diese Dateilisteenthält die Namen der anderen Tools, die das gcc-5-arm-linux-gnueabihfPaket enthält /usr/binund die für Sie möglicherweise nützlich sind. (Sie haben nicht erwähnt, welche Version Sie verwenden, aber ich vermute, es ist 18.04, da diese Version eine beliebte LTS-Version ist und standardmäßig Version 7 verwendet wird.)

Beachten Sie, dass selbst wenn Sie die Standardversion verwenden möchten, sofern Sie nicht geändert haben, worauf /usr/bin/gccverwiesen wird (was ich nicht empfehle), der gccBefehl einen GCC-Compiler ausführt, der Folgendes generiert:einheimischausführbare Dateien. Dies wird kein ARM-Compiler sein, es sei denn, Ihr Ubuntu-System läuft auf ARM. Um die Standardversion des GCC-Cross-Compilers für armhf auszuführen, verwenden Sie arm-linux-gnueabihf-gcc(und siehediese Dateiliste).

Mehrere Versionen sowohl nativer als auch Cross-Compiler können gleichzeitig auf demselben System installiert werden. Mit dem gccBefehl wird jedoch normalerweise nur die Standardversion des nativen GCC-Compilers aufgerufen. Andere Befehle haben ein Toolchain-Präfix, ein Versionssuffix oder (in diesem Fall) beides. Dies ist der Fallsogarwenn dieser nicht standardmäßige Compiler der einzige auf dem System installierte Compiler ist.

Wenn Sie gccdiesen Compiler wirklich aufrufen müssen ...

Wenn Sie gccdiesen Compiler aufrufen müssen, weil ein anderes Build-Tool, wie beispielsweise , makeaufruft , ist es normalerweise am besten, das andere Tool neu zu konfigurieren oder die Umgebungsvariable auf den gewünschten Compiler gcceinzustellen . Es reicht möglicherweise auch nicht aus, einfach den benötigten Compiler auszuführen.CCgccausreichend, da die Namen anderer Tools weiterhin die nativen Versionen ausführen.

Vorausgesetzt, Ihr Ubuntu-System istnichtein armhf-system, aber sie immer nochwirklich wollen gccUm den Cross-Compiler auszuführen arm-linux-gnueabihf-gcc-5, haben Sie mehrere Möglichkeiten. Sie könnten den /usr/bin/gccSymlink ersetzen (der unter 18.04 auf verweist gcc-7), aber davon rate ich ab. Dadurch wird wahrscheinlich alles beschädigt, was gccals nativer Compiler vorausgesetzt wird, und es kann zukünftige Paketverwaltungsvorgänge beeinträchtigen oder durch diese rückgängig gemacht werden.

Stattdessen könnten Sie einen gccsymbolischen Link zu arm-linux-gnueabihf-gcc-5in das private Bin-Verzeichnis Ihres Benutzers setzen ~/bin. Die Standarddatei pro Benutzer ~/.profile fügt dieses Verzeichnis hinzu $PATH, wenn Sie sich anmelden, sofern das Verzeichnis existiert. Automatisierte Builds (wie wenn Sie ./configureoder cmake ..und dann ausführen make), die Sie nicht anpassen, verwenden normalerweise cc, was weiterhin ein symbolischer Link zu einem nativen Compiler sein wird, sodass dies nichts beschädigen sollte.

Persönlich würde ich nicht einmal das tun wollen, denn ich würdeich selbstverwirrt werden. Ich bevorzuge, dass immer sofort klar ist, auf welche Plattform mein Compiler abzielt, wenn es sich um einen Cross-Compiler handelt.

verwandte Informationen