Ome*_*gan 12 autoconf cross-compiling arm64
一般问题:如果我使用交叉编译器,我怎么能告诉我在运行configure时应该给出的"--host"选项的值?
具体:我正在使用arm64 arch的交叉编译器.什么是正确的"--host"值?
vin*_*yal 35
如果我使用交叉编译器,我怎么能告诉
--host我运行时应该给出的选项的值./configure?
在讨论工具链创建时必须区分三台机器
工具链有四种常见的构建类型:
本机构建 ie BUILD==HOST==TARGET
用于为工作站构建普通gcc.例如BUILD==HOST==TARGET==x86
交叉构建 ie BUILD==HOST!=TARGET
用于构建在工作站上工作但为目标生成二进制文件的工具链.例如BUILD==HOST==x86 TARGET==arm
跨本机构建,即BUILD!=HOST==TARGET
用于在目标上工作的工具链,并为目标生成二进制文件.例如BUILD==x86 HOST==TARGET==ARM
加拿大工具链即BUILD!=HOST!=TARGET
用于构建体系结构工具链在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]
Run Code Online (Sandbox Code Playgroud)
您将在上面找到,具体取决于您想要做什么,您需要将其设置为交叉编译.如果所有选项都可用,那么您希望在arm目标上执行然后设置--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.这里如果set host足以交叉编译
具体:我正在使用交叉编译器进行
arm64arch.--host使用的正确值是什么?
对于x86_64,--host={triplet}通常给出,所以我认为同样适用于arm64通过设置--host={triplet}你的工具链,但我不确定.
小智 9
找出输入内容的最简单方法--host是config.guess在主机上运行.在我的机器上它位于/usr/share/automake-1.15/,但我建议运行locate config.guess找到它.
该脚本是开源的(GPL),如果您的计算机上没有该脚本,则可在此地址使用:
https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
在我的目标机器上,tegra X1(也是aarch64)给出的答案是aarch64-unknown-linux-gnu,它似乎适用于交叉编译.
| 归档时间: |
|
| 查看次数: |
12543 次 |
| 最近记录: |