常见问题:如果使用交叉编译器,如何确定运行configure时应提供的“ --host”选项的值?
具体:我正在为arm64 arch使用交叉编译器。要使用的正确“ --host”值是多少?
如果使用交叉编译器,如何确定
--host
运行时应提供的选项的值./configure
?
讨论工具链创建时,必须区分三台机器
工具链可能有四种常见的构建类型:
本机构建,即BUILD==HOST==TARGET
用于为工作站构建普通的gcc。例如BUILD==HOST==TARGET==x86
交叉构建,即BUILD==HOST!=TARGET
用于构建可在您的工作站上运行但为目标生成二进制文件的工具链。例如BUILD==HOST==x86 TARGET==arm
跨原生构建,即BUILD!=HOST==TARGET
用于在目标上运行并为目标生成二进制文件的工具链。例如BUILD==x86 HOST==TARGET==ARM
加拿大工具链,即BUILD!=HOST!=TARGET
用于构建ARCHITECTURE A的工具链在B上运行,并为C生成二进制文件。例如BUILD==x86 HOST==mac TARGET==arm
有了武装,这些基本知识就会浮出水面。
对于任何软件,请先运行 ./configure --help
主机类型:
--build=BUILD configure for building on BUILD [BUILD=HOST]
--host=HOST configure for HOST [guessed]
--target=TARGET configure for TARGET [TARGET=HOST]
您将在上面找到,因此根据您要执行的操作,需要将其设置为交叉编译。如果所有选项均可用,则您要在手臂目标上执行,然后设置--host={your toolchain triplet} --target={your toolchain triplet}
。
例如,如果使用arm-none-linux-gnueabi-gcc
,请设置--host=arm-none-linux-gnueabi --target=arm-none-linux-gnueabi
。这将写入您的makefile。最后,生成的可执行文件将在目标上运行。为此--build
将自动设置,无需担心。
对于某些软件包,只有两个选项可用i.e host and build
。这里是否设置host
足以交叉编译
具体:我正在使用交叉编译器进行构建
arm64
。--host
使用的正确值是多少?
对于x86_64,--host={triplet}
通常是给定的,因此我认为通过设置--host={triplet}
您的工具链,同样适用于arm64 ,但我不确定。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句