为 ARM 交叉编译 GMP 和 Openswan

为 ARM 交叉编译 GMP 和 Openswan

我必须opensawn为 OMAP4 板进行交叉编译,并且 GMP 是先决条件。首先我在 64 位操作系统上尝试了它,但它给了我这个错误:

配置:错误:糟糕,mp_limb_t 是 64 位,但此配置中的汇编代码需要 32 位。

然后我转向Ubuntu 12.04 32位,经过几次尝试后编译了GMP V6.0.0。即使在有了 ARCH、TOOLCHAIN 和 CROSS_COMPILER 变量之后,.bashrc我也必须执行export以下操作:

export ARCH=arm<BR>
export PATH=/home/harsh32bit/Work/Projects/BSQ_VVDN/BISQUARE/gcc-SourceryCodeBenchLite-arm/bin/:$PATH<BR>
export CROSS_COMPILE=arm-none-linux-gnueabi-<BR>

然后观察到以下命令:

./configure --build=i686-pc-linux-gnu --host=arm-none-linux-gnueabi --prefix=/home/harsh32bit/Work/Projects/BSQ_VVDN/BISQUARE/gcc-SourceryCodeBenchLite-arm/

make clean
make
make install

然后将 GMP 库软链接到工具链

~/Work/Projects/BSQ_VVDN/BISQUARE/gcc-SourceryCodeBenchLite-arm/lib/gcc/arm-none-linux-gnueabi/4.7.3  
# ln -s ~/Work/Projects/BSQ_VVDN/packages/gmp-6.0.0/.libs/libgmp.so libgmp.so

make check尽管报告的所有测试都失败了,但我还是成功编译了 GMP 。

9 of 9 tests failed.

现在,当我在 CROSSCOMPILE.sh 中进行更改后尝试交叉编译 Openswan-2.6.41 并执行此操作时,make programs我收到此错误:

在 /home/harsh32bit/Work/Projects/BSQ_VVDN/packages/openswan-2.6.41/include/certs.h:24:0 包含的文件中,来自 /home/harsh32bit/Work/Projects/BSQ_VVDN/packages/openswan-2.6 .41/lib/libopenswan/id.c:42:/home/harsh32bit/Work/Projects/BSQ_VVDN/packages/openswan-2.6.41/include/secrets.h:20:41:致命错误:gmp.h:否此类文件或目录编译终止

我需要交叉编译openswanGMP.

答案1

好吧,这花了很多时间,所以我凭直觉想到在 OMAP4 板本身上编译它,而不是在 ubuntu 上交叉编译它。对我来说幸运的是,OMAP4 板足够强大,可以执行此类编译:如果有人理解的话,那种很棒的感觉。

相关内容