如何切换arm-linux-gnueabihf-gcc的版本?

如何切换arm-linux-gnueabihf-gcc的版本?

我想使用 的第 5 版本arm-linux-gnueabihf-gcc

所以我通过以下方式安装它:

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

但是现在当我gcc --version这样做时它会告诉我它是版本 7。

我如何告诉它使用旧版本?

或者我必须完全卸载新版本?

答案1

您可以arm-linux-gnueabihf-gcc-5代替运行gcc

此文件列表gcc-5-arm-linux-gnueabihf包括软件包中放置的其他工具的名称/usr/bin,您可能会发现它们很有用。(您没有提到您正在运行哪个版本,但我猜是 18.04,因为该版本是流行的 LTS,默认为版本 7。)

请注意,即使你想使用默认版本,除非你改变了/usr/bin/gcc指向的内容(我不推荐这样做),否则该gcc命令正在运行生成本国的可执行文件。除非您的 Ubuntu 系统在 ARM 上运行,否则这不是 ARM 编译器。要运行 armhf 的默认 GCC 交叉编译器版本,请使用arm-linux-gnueabihf-gcc(并参阅此文件列表)。

可以在同一系统上同时安装本机和交叉编译器的多个版本。gcc但是,通常只使用该命令调用本机 GCC 编译器的默认版本。其他命令具有工具链前缀、版本后缀或(在本例中)两者。这是甚至当非默认编译器是系统上安装的唯一编译器时。

如果您确实必须调用gcc该编译器......

如果您需要gcc调用该编译器,因为其他构建工具(例如make正在调用)gcc,最好的方法通常是重新配置其他工具或将CC环境变量设置为所需的编译器。仅运行gcc您需要的编译器也可能不是充足的,因为其他工具的名称仍将运行本机版本。

话虽如此,假设你的 Ubuntu 系统是不是armhf 系统,但你仍然非常想要 gcc要运行arm-linux-gnueabihf-gcc-5交叉编译器,您有几个选择。您可以替换/usr/bin/gcc符号链接(在 18.04 上链接到gcc-7),但我建议不要这样做。这样做可能会破坏任何假定gcc为本机编译器的东西,并且可能会干扰或被未来的包管理操作撤消。

相反,您可以将gcc符号链接放在arm-linux-gnueabihf-gcc-5用户的私有 bin 目录中。如果目录存在,则~/bin默认的每个用户~/.profile 文件会在您登录时将该目录添加到。您未自定义的自动构建(例如,当您运行或然后时)通常使用,它将继续作为本机编译器的符号链接,因此这不会破坏任何东西。$PATH./configurecmake ..makecc

就我个人而言,我甚至不想这样做,因为我会变得困惑。当编译器是交叉编译器时,我希望它总是能够立即清楚我的编译器针对的是哪个平台。

相关内容