我想使用 的第 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
./configure
cmake ..
make
cc
就我个人而言,我甚至不想这样做,因为我会我变得困惑。当编译器是交叉编译器时,我希望它总是能够立即清楚我的编译器针对的是哪个平台。