Compilation 在Ubuntu 12.04 32位上交叉编译ARM的GMP和Openswan
我必须为OMAP4板交叉编译Compilation 在Ubuntu 12.04 32位上交叉编译ARM的GMP和Openswan,compilation,open-source,arm,gmp,omap,Compilation,Open Source,Arm,Gmp,Omap,我必须为OMAP4板交叉编译opensawn,GMP是先决条件。首先,我在64位操作系统上尝试了它,但它给了我以下错误: configure:error:Oops,mp\u limb\u t为64位,但此配置中的汇编代码需要32位 然后我转到Ubuntu 12.04 32位,GMP V6.0.0在几次试用后编译完成。即使在.bashrc中有了ARCH、TOOLCHAIN和CROSS_编译器变量,我也必须导出以下内容: export ARCH=arm<BR> export PATH=/
opensawn
,GMP是先决条件。首先,我在64位操作系统上尝试了它,但它给了我以下错误:
configure:error:Oops,mp\u limb\u t为64位,但此配置中的汇编代码需要32位
然后我转到Ubuntu 12.04 32位,GMP V6.0.0在几次试用后编译完成。即使在.bashrc
中有了ARCH、TOOLCHAIN和CROSS_编译器变量,我也必须导出以下内容:
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>
然后将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
我成功地编译了GMP,尽管检查报告所有测试均失败
9 of 9 tests failed.
现在,在CROSSCOMPILE.sh中进行更改后,当我尝试交叉编译Openswan-2.6.41并执行此make programs
时,我得到以下错误:
在文件中包括:from/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:没有这样的文件或目录
编译终止
我去了TIE2E的网站,在过去的4周里,我在互联网上嗅了嗅指针,但我想不出来。如果有人对ARM的交叉编译openswan
和GMP
有任何线索,请告诉我。
- gmp文件的静态链接必须在无
sudo
的情况下完成,因为当您在没有sudo
的情况下从openswan软件包调用make programs
时,您不是root用户,而是一个普通用户,如果您使用make programs
和sudo
则会丢失一些导出变量,尤其是ARCH
。它采用默认体系结构,而不是您要编译的目标体系结构;就像在我的例子中,它是针对arm
- 如果必须使用
sudo
,请将其设置为可读写。也就是说,在链接工具链中的库文件之后,您可以对该文件调用chmod 777
,因为这样所有用户组的rw都可以使用该文件
为了解释该错误消息,您所做的更改是否包括将GMP头的位置添加到相关的包含路径?export LD_LIBRARY_path=$PREFIX/lib/gcc/arm none linux gnueabi/4.7.3/
您的意思是这样的吗?不,这将链接器指向交叉编译的C库。我的意思是告诉编译器头的位置,可以使用编译器命令行上的-I
选项,也可以使用环境变量。我将其用于生成程序
,但没有用。我应该用其他命令吗?777?为什么?为什么人们需要对库进行写访问呢?没错,但在linux新手一个多月的调试过程中,为了确保任何用户都能执行它,我采用了这种方式。这不可能是缺少头文件的解决方案。
9 of 9 tests failed.