在程序中存在多個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只需要包含一次即可。