在Ubuntu 12.04 32位上交叉编译GMP和Openswan for ARM

时间:2014-09-04 05:25:13

标签: compilation open-source arm gmp omap

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

  

configure:error:Oops,mp_limb_t是64位,但此配置中的汇编代码需要32位。

然后我转移到Ubuntu 12.04 32位,GMP V6.0.0在几次试验后编译完成。即使在.bashrc中包含ARCH,TOOLCHAIN和CROSS_COMPILER变量之后,我也必须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,from / 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:没有这样的文件或目录       编译终止

我已经去了TI E2E网站,在过去的4周内嗅到互联网指针,但我无法弄明白。如果有人对ARM的交叉编译openswanGMP有任何疑问,请告诉我。

1 个答案:

答案 0 :(得分:-1)

基本上

  • gmp文件的静态链接必须无法sudo - 因为当你从openwan包中调用make programs而没有sudo时,你不是root用户而是普通用户,如果你使用make programssudo {@ 1}}错过了一些导出的变量,尤其是ARCH。它采用默认架构而不是您要编译的目标架构;就我而言,它是arm
  • 如果您必须使用sudo,请为所有人提供可读写内容。这是在链接工具链中的库文件之后,您可以在该文件上调用chmod 777 - 因为它将可用于所有用户组的rw。