如何交叉编译oath-toolkit的静态链接MIPS构建?
问题描述:
我正试图在x86系统上为MIPS构建OATH Toolkit。我想产生一个静态构建,所以它很可能适用于任何MIPS系统。如何交叉编译oath-toolkit的静态链接MIPS构建?
只是为了更精确的目标系统上的支持ISA是:mips1 mips2 mips32r1 mips32r2
从我的理解,我需要为了做这个准备工具链,我成功地配置和构建buildroot所以现在我有它里面~/buildroot-2016.08.1/output/target
我该如何使用/激活buildroot,以建立检查把oath-toolkit
代码?
注:我不是*使用buildroot,所以我会考虑任何替代方案。
答
只需运行带有合适参数的configure
脚本即可将Buildroot编译器用作交叉编译器,并使参数静态链接。
./configure --enable-static --disable-shared \
--target=mips-buildroot-linux-gnu --host=mips-buildroot-linux-gnu \
CC=$HOME/buildroot-2016.08.1/output/host/usr/bin/mips-linux-gcc
以上假设您使用的是glibc和big-endian MIPS。请检查~/buildroot-2016.08.1/output/host/usr/mips*
的目录名称,以获取--target
/--host
选件的正确值以及~/buildroot-2016.08.1/output/host/usr/bin
的内容,以获取CC=
选件的正确值。
请注意,您必须选择“MIPS 32”架构变型(BR2_mips_32
)要与所有目标系统兼容。
还要注意,对于glibc,您可能没有完全静态链接的可执行文件,因为它会尝试动态加载NSS库。这是例如如果使用getaddrinfo
来解析主机名。你需要使用uClibc或musl来避免这种情况。