VS2013编译eXosip2-5.0.0

可以先参考[VS2013编译eXosip2-4.1.0]文章进行编译
https://blog.csdn.net/dgyanyong/article/details/50818101

 

下面罗列一下额外需要修改的地方:

 

一、5.0版本缺少eXrefer_api.c文件,从4.1版本中找到eXrefer_api.c,并添加到相应的位置。

二、exosip协议栈刷新订阅不好用问题
参考文章:https://blog.csdn.net/songxiao1988918/article/details/78698103
修改eXosip/src/jdialog.c
_eXosip_subscription_dialog_find函数,

#if 0 // modify start 修改刷新订阅、取消订阅不好用的问题

    if ((*js)->s_id == sid)

      return OSIP_SUCCESS;

#else

    if ((*js)->s_id == sid) {

        *jd = (*js)->s_dialogs;

        return OSIP_SUCCESS;

    }

#endif // modify end

三、使用eXosip的工程应包含如下lib[链接器->输入->附加依赖项]:
ws2_32.lib
Dnsapi.lib
Qwave.lib
delayimp.lib
osip2.lib
osipparser2.lib
libcares.lib
eXosip.lib

 

缺少delayimp.lib会出现
错误 1 error LNK2001: 无法解析的外部符号 ___HrLoadAllImportsForDll@4

缺少Qwave.lib会出现
错误 2 error LNK2001: 无法解析的外部符号 _QOSCreateHandle@8
错误 3 error LNK2001: 无法解析的外部符号 _QOSCloseHandle@4
错误 4 error LNK2001: 无法解析的外部符号 _QOSAddSocketToFlow@24
错误 5 error LNK2001: 无法解析的外部符号 _QOSRemoveSocketFromFlow@16

四、[链接器->输入->忽略特定默认库]需要输入LIBCMT,否则会出现下面错误:
错误 1 error LNK2005: __invalid_parameter 已经在 msvcrtd.lib(MSVCR120D.dll) 中定义
错误 2 error LNK2005: __invoke_watson 已经在 msvcrtd.lib(MSVCR120D.dll) 中定义
错误 4 error LNK1169: 找到一个或多个多重定义的符号


五、4.1版本和5.0版本相比,订阅相关函数名有变化
变更点可以比较 eX_subscribe.h
5.0版本初始化订阅使用eXosip_subscription_build_initial_subscribe函数。
4.1版本函数中的subscribe变更为5.0版本中的subscription。

 

你可能感兴趣的:(GB28181)