总问题:如果我使用交叉编译器,我该如何说出我运行配置时应该给出的“ - 主持人”选项的值?
特定:我正在为ARM64拱门使用Cross编译器。正确使用的“ - 主持人”值是什么?
构建机。 主机如果我使用交叉编译器,我该如何判断我运行时应该给出的选项的值?
讨论工具链创建时必须区分三台机器建造工具链的地方
--host
./configure
BUILD==HOST==TARGET
sross-native build
用于在目标上有效并为目标生成二进制的工具链。例如
CANADIAN工具链即 用于构建架构A A工具链在B上运行并为架构生成二进制。例如武装这个基础知识来提出您的问题。
BUILD==HOST==TARGET==x86
主机类型:
BUILD==HOST!=TARGET
您会在上面找到,因此取决于您想做的事情,需要将其设置为交叉编译。如果所有选项都可用,则要在ARM目标上执行,然后设置
BUILD==HOST==x86 TARGET==arm
。
BUILD!=HOST==TARGET
,请设置BUILD==x86 HOST==TARGET==ARM
。这将写给您的makefile。
最后,生成的可执行文件将在目标上运行。因为这将自动设置,因此无需担心。
对于某些软件包,只有两个选项可用。在这里,如果设置足以交叉编译
BUILD!=HOST!=TARGET
拱门。什么是正确使用的BUILD==x86 HOST==mac TARGET==arm
对于x86_64,通常给出
./configure --help
,所以我认为通过为您的工具链设置--build=BUILD configure for building on BUILD [BUILD=HOST]
--host=HOST configure for HOST [guessed]
--target=TARGET configure for TARGET [TARGET=HOST]
,我认为ARM64也应该有效,但我不确定。
--host={your toolchain triplet} --target={your toolchain triplet}
在
arm-none-linux-gnueabi-gcc
中输入的方法。在我的机器上,它位于
--host=arm-none-linux-gnueabi --target=arm-none-linux-gnueabi
中,但我建议跑步--build
找到它。
脚本是开源(GPL),并且在此地址上可用,以防您的计算机上可用:https://git.savannah.gnu.org/gitweb/?p = config.git; a = blob_plain; f =config.guess
在我的目标机器中,Tegra X1(也是AARCH64)的答案是Arch64-inarch-ninknown-linux-gnu,它似乎可以很好地进行交叉编译。
-主机是最终将最终运行的机器的“三重态”。在您的情况下,“ ARM64”是建筑,但这只是三胞胎的一部分。无论如何,它将三胞胎中的字符串“ Aarch64”映射。一个可能的值是
-host = aarch64-linux-androidthis fromgnu.org
的第一个页面给出了有关 - 主持/ - target/ - build usage
其他答案中已经说明了许多有用的事情,但是某种程度上似乎都没有回答问题的实际方面。
在哪里寻找有效的值以传递到i.e host and build
和在其他答案中已陈述,并且可以在AutoConf手册中读取有关
指定目标三重序列,该值传递给,host
arm64
--host
选项的值称为一个
--host={triplet}
具有形式
--host={triplet}
--host
,
config.guess
和
/usr/share/automake-1.15/
的方法。幸运的是,AutoConf手册中还有另一个页面,涉及指定系统类型 查看文件
locate config.guess
因此,使用的确切值是特定于您要编译的程序的特定值。然后在--host
文件中列出了可能的选项(如果不存在该文件,则不必首先指定目标三重态)。