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

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=/

我必须为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=/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.