0

我必须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:否此类文件或目录编译终止

我为此去了 TI E2E 网站,在过去的 4 周内嗅探互联网以获取指针,但我无法弄清楚。如果有人对交叉编译openswanGMPARM 有任何线索,请告诉我。

4

1 回答 1

-1

所以本质上

  • gmp 文件的静态链接必须在没有的情况下完成sudo- 因为当您make programs从 openswan 包调用时,sudo您不是 root 而不是普通用户,如果您使用make programssudo,尤其会错过一些导出的变量ARCH。它采用默认架构而不是您要编译的目标架构;就像我的情况一样arm
  • 如果您必须使用sudo,请使其对所有人都可读可写。那是在链接工具链中的库文件之后,您可以调用chmod 777该文件 - 因为这样它将可用于所有用户组的 rw。
于 2014-10-08T13:12:22.663 回答