在程序中存在多个gSoap客户端代理类的话,比如我项目中用到的两个NMMAILGgzwSerSoapProxy.h和ZJFaxMangerHttpBindingProxy.h,其中第一个NMMAILGgzwSerSoapProxy.h类是后期添加上去,按照之前的,我还是把三个头文件和两个cpp文件拷贝到项目工程路径下,同时把GgzwSerSoap.nsmap也包含到项目中去,结果编译发现如下错误:
错误 1 error LNK2005: _namespaces 已经在 ZJFaxMangerHttpBindingProxy.obj 中定义 FarmerMail.obj
因为之前在开发中也遇到了类似的问题,因此我在生成NMMAILGgzwSerSoapProxy.h这个类的时候刻意对命名空间重新指定了,但是还是发现这个错误,后面经过查找对比,发现成程序中ZJFaxMangerHttpBindingProxy.h类的nsmap文件已经能够包含,当我在把后面类的nsmap包含进去以后就会提示重定义。
在不同的gSoap客户端的开发中,不论有多少个代理类,包含的nsmap只需要包含一次即可。