在标准linux下用gsoap开发的例子能够成功编译,在交叉编译环境下对例子中makefile进行了修改,将gcc变为arm-elf-gcc,这时就不能成功编译了,错误代码如下:
[root@localhost Exercise_2]# make
../../bin/soapcpp2 -c exer.h
** The gSOAP Stub and Skeleton Compiler for C and C++ 2.7.9e
** Copyright (C) 2000-2007, Robert van Engelen, Genivia Inc.
** All Rights Reserved. This product is provided "as is", without any warranty.
** The gSOAP compiler is released under one of the following three licenses:
** GPL, the gSOAP public license, or the commercial license by Genivia Inc.
Saving soapStub.h
Saving soapH.h
Saving soapC.c
Saving soapClient.c
Saving soapClientLib.c
Saving soapServer.c
Saving soapServerLib.c
Using ex service name: exer
Using ex service style: rpc
Using ex service encoding: encoded
Using ex service location: http://localhost/~xiaoxia/exerserver.cgi
Using ex schema namespace: urn:exer
Saving exer.wsdl Web Service description
Compliance warning: operation 'ex__test' is not compliant with WS-I Basic Profil e 1.0a, reason: uses SOAP encoding
Saving exer.test.req.xml sample SOAP/XML request
Saving exer.test.res.xml sample SOAP/XML response
Saving exer.nsmap namespace mapping table
Saving ex.xsd XML schema
Compilation successful
arm-elf-gcc -I../.. -o exerclient exerclient.c soapC.c soapClient.c ../../stdsoa p2.c
../../stdsoap2.c: In function `soap_code_bits':
../../stdsoap2.c:1323: warning: comparison is always true due to limited range o f data type
../../stdsoap2.c: In function `soap_value':
../../stdsoap2.c:10661: warning: comparison is always true due to limited range of data type
../../stdsoap2.c: In function `soap_getmimehdr':
../../stdsoap2.c:11148: warning: comparison is always true due to limited range of data type
../../stdsoap2.c: In function `http_parse':
../../stdsoap2.c:12666: warning: comparison is always true due to limited range of data type
/tmp/ccwdgCf8.o(.text+0x14a3c): In function `soap_float2s':
: undefined reference to `isnan'
/tmp/ccwdgCf8.o(.text+0x15304): In function `soap_double2s':
: undefined reference to `isnan'
/usr/local/lib/gcc-lib/arm-elf/2.95.3/libgcc.a(__main.o)(.text+0xc4): In functio n `__do_global_ctors':
: undefined reference to `__CTOR_LIST__'
/usr/local/lib/gcc-lib/arm-elf/2.95.3/libgcc.a(__main.o)(.data+0x0): undefined r eference to `__DTOR_LIST__'
collect2: ld returned 1 exit status
make: *** [exerclient] 错误? 1