Onvif 无法解析的外部符号 soap_in_xsd__dateTime问题,解决(一)

无法解析的外部符号问题也困扰我很久,最后才发现是因为没有添加文件问题,我的天呀!!

问题描述:

1> 正在创建库 G:\onvif\Onvif_Client\onvifClient\Debug\onvifClient.lib 和对象G:\onvif\Onvif_Client\onvifClient\Debug\onvifClient.exp
1>soapC.obj : error LNK2019: 无法解析的外部符号 “struct timeval * __cdecl soap_in_xsd__dateTime(struct soap *,char const *,struct timeval *,char const *)” (?soap_in_xsd__dateTime@@YAPAUtimeval@@PAUsoap@@PBDPAU1@1@Z),该符号在函数 _soap_getelement 中被引用
1>soapC.obj : error LNK2019: 无法解析的外部符号 “int __cdecl soap_out_xsd__dateTime(struct soap *,char const *,int,struct timeval const *,char const *)” (?soap_out_xsd__dateTime@@YAHPAUsoap@@PBDHPBUtimeval@@1@Z),该符号在函数 _soap_putelement 中被引用
1>soapC.obj : error LNK2019: 无法解析的外部符号 “void __cdecl soap_serialize_xsd__dateTime(struct soap *,struct timeval const *)” (?soap_serialize_xsd__dateTime@@YAXPAUsoap@@PBUtimeval@@@Z),该符号在函数 _soap_markelement 中被引用
1>soapC.obj : error LNK2019: 无法解析的外部符号 “void __cdecl soap_default_xsd__dateTime(struct soap *,struct timeval *)” (?soap_default_xsd__dateTime@@YAXPAUsoap@@PAUtimeval@@@Z

1>d:\program files (x86)\microsoft visual studio 8\vc\include\vector(639) : fatal error C1128: 节数超过对象文件格式限制请使用/bigobj 进行编译

Onvif 无法解析的外部符号 soap_in_xsd__dateTime问题,解决(一)_第1张图片

解决方法:
1、在项目属性C/C+±》命令行 添加 /bigobj , 这样就能解决其中之一报错问题

2、关于无法解析的外部符号 "struct timeval * __cdecl soap_in_xsd__dateTime等问题,是因为没有添加duration.c和duration.h 导致的。

注:如使用C++的,添加duration.c文件时,把后缀C改成CPP文件格式。这样就能编译通过啦!!!

如添加duration.c后还出现错误如:
1>.\duration.cpp(66) : error C2226: 语法错误: 意外的“”类型
1>.\duration.cpp(67) : error C2143: 语法错误: 缺少“”在“{”的前面
1>.\duration.cpp(67) : error C2447: “{”缺少函数标题是否是老式的形式表
1>.\duration.cpp(103) : error C2228: “”的左边必须有类结构联合
1> 类型是“LONG64”
1>.\duration.cpp(108) : error C2146: 语法错误: 缺少“”在标识符“”的前面
1>.\duration.cpp(108) : error C2275: “”将此类型用作表达式非法
1> e:\code\cpp\zxvnms_5_6_dev\src\onvifwsproxy\stdsoap2.h(2639) : 参见“”的声明
1>.\duration.cpp(108) : error C2365: “”重定义;以前的定义是“函数”
1> e:\code\cpp\zxvnms_5_6_dev\src\onvifwsproxy\stdsoap2.h(3430) : 参见“”的声明
1>.\duration.cpp(108) : fatal error C1903: 无法从以前的错误中恢复;正在停止编译

参考文章:https://blog.csdn.net/qq_36351159/article/details/107786882

出现stdsoap2.cpp错误 2 error LNK2001: 无法解析的外部符号 _namespaces

解决方法:

  1. 在工程中定义 WITH_NONAMESPACES 宏

Onvif 无法解析的外部符号 soap_in_xsd__dateTime问题,解决(一)_第2张图片

你可能感兴趣的:(Onvif,onvif,c++)