我必须为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的交叉编译openswan
和GMP
有任何疑问,请告诉我。
答案 0 :(得分:-1)
基本上
sudo
- 因为当你从openwan包中调用make programs
而没有sudo
时,你不是root用户而是普通用户,如果你使用make programs
与sudo
{@ 1}}错过了一些导出的变量,尤其是ARCH
。它采用默认架构而不是您要编译的目标架构;就我而言,它是arm
。sudo
,请为所有人提供可读写内容。这是在链接工具链中的库文件之后,您可以在该文件上调用chmod 777
- 因为它将可用于所有用户组的rw。