我正在尝试为ARM体系结构(特别是Raspberry Pi)交叉编译GNU Scientific Library(gsl,v1.16)。我已使用以下内容进行配置;
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工具链来设置我的交叉编译器。任何指向我做错的指示都非常感谢。
提前致谢!
答案 0 :(得分:2)
您的配置不正确,交叉编译build =(您的x86 gcc)和host = target =(arm-tool-chain)。请尝试以下命令。
./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"
答案 1 :(得分:0)
我不能保证它会起作用,但使用emerge包装器你可能会有更好的运气。
armv6j-hardfloat-linux-gnueabi-emerge gsl
我已经开发了一系列脚本,使这种事情变得更加可靠,但不幸的是,我陷入了混乱编译Python模块并且从未进入可释放状态的地狱。