我正在尝试编译 ARM 系统实用程序的源代码(主机:x86_64,Debian,uname -v
报告版本为“Debian 4.9.110-3+deb9u1”),但是当它尝试将文件打包成最终二进制文件以供使用时在目标系统上,我收到错误:
as: unrecognized switch -EL
我注意到我有两个不同的二进制文件as
;一进/usr/bin
一进/bin
。我将其中的/usr/bin
副本重命名为/bin
支持-EL
切换,但现在我收到一个新错误:
as: unrecognized switch: --64
以前的二进制文件支持此开关,尽管它不支持-EL
.
我相当确定这只是没有正确版本的问题as
,但我不知道去哪里获得正确的版本。我已经gcc
通过 apt-get 更新了所有类似的软件包,但这并没有解决问题?
答案1
/usr/bin
如果 in和 in中有同名的二进制文件/bin
,它们应该是相同的。通常一个是另一个的符号链接。看起来交叉编译器的一部分是安装在现有工具上的。这只会导致混乱。
该程序as
通常是 的一部分binutils
,而不是gcc
。
如果您自己编译了交叉编译器,则应确保不会覆盖本机实用程序。