开发者社区> 问答> 正文

ONVIF开发用GSOAP生成C文件链接报错?报错

这段时间在研究ONVIF,希望各位大神可以指点一二,小弟谢过了。

我自己用GSOAP生成的代码在VC6.0里面链接的时候报错(编译不报错),不知为何,望高人指点。

soapC.obj : error LNK2001: unresolved external symbol _soap_in_xsd__duration
soapC.obj : error LNK2001: unresolved external symbol _soap_out_xsd__duration
soapC.obj : error LNK2001: unresolved external symbol _soap_default_xsd__duration

 

展开
收起
爱吃鱼的程序员 2020-06-22 22:31:36 661 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    估计是有些库添加异常(或者onvif的一些wsdl文件你没有下全),以上报错提示未定义的外部对象

    WSDL文件要到哪儿去下载呢?我看onvif官方网站上似乎没有啊!我用的这个是在CSDN上面下载的。

    http://www.onvif.org/Documents/Specifications.aspx

    在最下面,所有的WSDL文件都在

    不知道你有没有解决这个问题啊。 

    同样的问题,也困扰我两天呀。愁死了。 刚刚终于找到解决的办法了。你在gsoap目录下找到duration.c文件,然后复制到当前工程下。就能通过了。

    正在研究gsoap,刚好看到这个问题的原因了。这个问题是因为在gSOAP工具中提供的typemap.dat文件中有下面的类型转换规则:


    <preclass="brush:shell;toolbar:true;auto-links:false;">#UncommentthelinebelowtouseLONG64intforxsd:duration#(withhighmsprecision)#Mustcompileandlinkcustom/duration.cwiththeprojectxsd__duration=#import"custom/duration.h"|xsd__duration而你在工程中没有加入和编译链接gsoap目录下的custon/duration.c文件。因此解决办法有两个:


    1. 将custom/duration.c加入到工程中,楼上的解决方法。
    2. 修改你的typemap.dat文件中的上述转换规则,不使用LONG64,只使用long类型。

    2020-06-22 22:31:52
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
附件下载测试 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载