2016-11-30 127 views
0

我正试图在x86系统上为MIPS构建OATH Toolkit。我想产生一个静态构建,所以它很可能适用于任何MIPS系统。如何交叉编译oath-toolkit的静态链接MIPS构建?

只是为了更精确的目标系统上的支持ISA是:mips1 mips2 mips32r1 mips32r2

从我的理解,我需要为了做这个准备工具链,我成功地配置和构建buildroot所以现在我有它里面~/buildroot-2016.08.1/output/target

我该如何使用/激活buildroot,以建立检查把oath-toolkit代码?

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

回答

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来避免这种情况。