我必须为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包含的文件中,从/home/harsh32bit/Work/PProjects/BSQ-VVDN/packaging/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
有任何线索,请告诉我。
所以本质上是
- gmp文件的静态链接必须在没有
sudo
的情况下完成,因为当你从没有sudo
的openswan包中调用make programs
时,你不是root用户,而是普通用户,如果你将make programs
与sudo
一起使用,它会错过一些导出的变量,尤其是ARCH
。它采用默认体系结构,而不是您想要编译的目标体系结构;就像我的arm
一样 - 如果必须使用
sudo
,请使其可读写。也就是说,在链接工具链中的库文件后,您可以对该文件调用chmod 777
,因为这样它将可用于所有用户组的rw