我们使用gSoap开发了一个简单的C++应用程序。当我们使用经典的Makefile时,一切正常,系统工作正常。但是,当我们使用GNU自动工具作为构建系统,我们遇到一个奇怪的约束违反验证错误,当我们拨打服务:automake用于构建gSoap应用程序时的不同行为
(SOAP 1.1 fault: SOAP-ENV:Client [no subcode]
"Validation constraint violation: invalid value in element 'risk'"
Detail: [no detail]
我们已经检查了所有的编译和类似标志和看起来都一样。
Makefile.am
ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4
AUTOMAKE_OPTIONS = subdir-objects
AM_CPPFLAGS = --pedantic -Wall -Wno-vla -Wno-unknown-pragmas -Wno-format
bin_PROGRAMS= Client Server
Client_SOURCES=card_soap_client.cpp envC.cpp stdsoap2.cpp cardProxy.cpp cardC.cpp
Client_CPPFLAGS= $(AM_CPPFLAGS) -DWITH_NONAMESPACES
Server_SOURCES=card_soap_server.cpp envC.cpp stdsoap2.cpp cardService.cpp cardC.cpp
Server_CPPFLAGS= $(AM_CPPFLAGS) -DWITH_NONAMESPACES
的Makefile
CF=-c -Wall --pedantic -Wno-vla -Wno-unknown-pragmas -Wno-format -g -O2 -fPIC -DPIC -DWITH_NONAMESPACES
LF = -g -O2
all: card_soap_client.o card_soap_server.o cardProxy.o cardService.o cardC.o envC.o stdsoap2.o
g++ card_soap_client.o cardProxy.o cardC.o envC.o stdsoap2.o $(LF) -o Client
g++ card_soap_server.o cardService.o cardC.o envC.o stdsoap2.o $(LF) -o Server
cardC.o:cardC.cpp
g++ $(CF) cardC.cpp
cardService.o:cardService.cpp
g++ $(CF) cardService.cpp
cardProxy.o:cardProxy.cpp
g++ $(CF) cardProxy.cpp
envC.o: envC.cpp
g++ $(CF) envC.cpp
stdsoap2.o: stdsoap2.cpp
g++ $(CF) stdsoap2.cpp
card_soap_client.o:card_soap_client.cpp
g++ $(CF) card_soap_client.cpp
card_soap_server.o:card_soap_server.cpp
g++ $(CF) card_soap_server.cpp
我们已经产生使用2.8.9和23年2月8日的服务和编译G ++ - 4.7。该服务使用以下命令生成:
soapcpp2 -i -n -qcard -I/usr/share/gsoap/import/ interface_v1.3.1.hpp
UPDATE:完整的源代码可以here
你在另一台机器上试过这个吗? – ZivS
客户端发送的xml消息是怎样的?他们是一样的吗? –
@ZivS这里的结果相同。我可以在我的机器上使用自动工具重现相同的错误(Debian 8.1) –