如何交叉编译oath-toolkit的静态链接MIPS构建?

时间:2016-11-30 17:07:31

标签: gcc mips cross-compiling toolchain buildroot

我正在尝试在x86系统上为MIPS构建OATH Toolkit。我想生成静态构建,因此它很可能适用于任何MIPS系统。

更准确地说,目标系统上支持的ISA是:mips1 mips2 mips32r1 mips32r2

根据我的理解,我需要准备一个工具链才能执行此操作并成功配置并构建buildroot所以现在我确实在~/buildroot-2016.08.1/output/target

我应该如何使用/激活buildroot来构建check oath-toolkit代码?

注意:我没有被迫使用buildroot,所以我会考虑任何替代方案。

1 个答案:

答案 0 :(得分:2)

只需使用适当的参数运行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来避免这种情况。