2

我想为 arm-linux 交叉编译 gsoap,这是我的配置命令

./configure CC="arm-linux-gcc" CROSS_COMPILER="arm-linux-" ARCH="arm" --host=arm-linux LR="arm-linux-lr" LD="arm-linux-ld" LDFLAGS="-static" --enable-static --enable-samples --disable-openssl --prefix=/usr/local/gsoap-2.8 CXX="arm-linux-g++"

运行make后出现此错误
arm-linux-gcc -DHAVE_CONFIG_H -I. -I../.. -DWITH_YACC -DWITH_LEX -DSOAPCPP_IMPORT_PATH="\"/usr/local/gsoap-2.8/share/gsoap/import\"" -DLINUX -g -O2 -MT soapcpp2-soapcpp2_yacc.o -MD -MP -MF .deps/soapcpp2-soapcpp2_yacc.Tpo -c -o soapcpp2-soapcpp2_yacc.o test -f 'soapcpp2_yacc.c' || echo './'soapcpp2_yacc.c mv -f .deps/soapcpp2-soapcpp2_yacc.Tpo .deps/soapcpp2-soapcpp2_yacc.Po /bin/bash ../../ylwrap soapcpp2_lex.l .c soapcpp2_lex.c -- /bin/bash /home/glassess/local/arm/gsoap-2.8/missing --run flex
make[4]: * [soapcpp2_lex.c] Error 1

所以出了什么问题,我必须为 arm-linux 编译 yacc 和 bison 我自己

4

2 回答 2

1

所以出了什么问题,我必须自己为 arm-linux 编译 yacc 和 bison

您需要为您的构建环境安装 flex 以便能够由 make 执行(然后不是交叉编译的)。

当我交叉编译 gSOAP 时,构建输出如下所示:

/bin/bash ../../ylwrap soapcpp2_lex.l lex.yy.c soapcpp2_lex.c -- flex  -l

在你的没有 flex 命令。
可能配置 flex 检测失败。您可能需要检查 flex 是否可从您的构建环境、运行flex -hwhich flex.

于 2014-08-20T21:36:01.563 回答
0

编译不需要为我继续更多,因为我只需要 lib 文件及其在此错误之前创建

于 2014-08-13T13:09:33.893 回答