交叉编译为ARM GSL 1.16(Cross-compiling GSL 1.16 for ARM

2019-10-18 13:02发布

我试图交叉编译的GNU科学图书馆(GSL,V1.16),用于ARM架构(特别是树莓派)。 我已经使用了以下配置;

CROSS=armv6j-hardfloat-linux-gnueabi
./configure --host=x86_64-pc-linux-gnu --build=$CROSS --target=$CROSS \
CC=/usr/bin/$CROSS-gcc \
CXX=/usr/bin/$CROSS-g++ \
AR=/usr/bin/$CROSS-ar \
RANLIB=/usr/bin/$CROSS-ranlib \
CFLAGS="-march=armv6 -mfloat-abi=hard -mfpu-vfp"

我收到以下错误信息:

libtool: compile:  /usr/bin/armv6j-hardfloat-linux-gnueabi-gcc 
-DHAVE_CONFIG_H -I. -I.. -I.. -march=armv6 -mfloat-abi=hard -mfpu=vfp 
-MT read.lo -MD -MP -MF .deps/read.Tpo -c read.c -o read.o
In file included from fp.c:10:0:
fp-gnux86.c: In function 'gsl_ieee_set_mode':
fp-gnux86.c:42:15: error: '_FPU_SINGLE' undeclared (first use in this function)
fp-gnux86.c:42:15: note: each undeclared identifier is reported only once for each function it appears in
fp-gnux86.c:45:15: error: '_FPU_DOUBLE' undeclared (first use in this function)
fp-gnux86.c:48:15: error: '_FPU_EXTENDED' undeclared (first use in this function)
fp-gnux86.c:57:15: error: '_FPU_RC_NEAREST' undeclared (first use in this function)
fp-gnux86.c:60:15: error: '_FPU_RC_DOWN' undeclared (first use in this function)
fp-gnux86.c:63:15: error: '_FPU_RC_UP' undeclared (first use in this function)
fp-gnux86.c:66:15: error: '_FPU_RC_ZERO' undeclared (first use in this function)
fp-gnux86.c:76:13: error: '_FPU_MASK_DM' undeclared (first use in this function)
make[2]: *** [fp.lo] Error 1

我编译64位Linux的Gentoo系统上。 我已经使用了Gentoo工具链来建立我的交叉编译器。 什么我做错了任何指针的高度赞赏。

提前致谢!

Answer 1:

你的配置不正确,在交叉编译构建=(您的x86 GCC),和主机=目标=(ARM工具链)。尝试下面这样的命令。

./configure --host=armv6j-hardfloat-linux-gnueabi --build=x86_64-pc-linux-gnu --target=armv6j-hardfloat-linux-gnueabi \ CFLAGS="-march=armv6 -mfloat-abi=hard -mfpu-vfp"



Answer 2:

我不能保证它会工作,但你会使用出现包装可能有更好的运气。

armv6j-hardfloat-linux-gnueabi-emerge gsl

我工作的脚本,让这样的事情更可靠的集合,但不幸的是我得到了这是交叉编译Python模块地狱纠结起来,他再也没有进入释放状态。



文章来源: Cross-compiling GSL 1.16 for ARM