前言
官网主页
http://savannah.nongnu.org/projects/exosip/
下载
Index of /download/exosip2/ (antisip.com)
当前源码版本
libexosip2-5.3.0.tar.gz
libosip2-5.3.0.tar.gz
编译
修改库文件夹名称
解压上述两个压缩包得到如下的文件夹
libexosip2-5.3.0
libosip2-5.3.0
修改文件夹名称分别为exosip,osip,然后拷贝到开源库文件夹下
原因
例如osip2.vcxproj工程属性文件中包含的源码文件路径如下:
<ClCompile Include="..\..\..\osip\src\osip2\fsm_misc.c" />
<ClCompile Include="..\..\..\osip\src\osip2\ict.c" />
并没有携带lib和版本号2-5.3.0
否则提示无法打开..\..\..\osip\src\osip2\fsm_misc.c等编译错误
添加工程属性文件
osip\platform\vsnet\osip2.vcxproj
osip\platform\vsnet\osipparser2.vcxproj
exosip\platform\vsnet\eXosip.vcxproj
exosip工程属性配置预处理
去掉HAVE_OPENSSL_SSL_H,TSL_SUPPORT
TSC_SUPPORT宏定义指定了通信方式tsc_socket,依赖tsc_socket_api.h等具体的实现,目前仅使用winsocket,因此不能添加到预处理器里面
HAVE_OPENSSL_SSL_H宏定义指定了通信方式进行加密,依赖OpenSSL,目前不需要,因此不能添加到预处理器里面
最后保留结果:
SRV_RECORD
_CRT_SECURE_NO_DEPRECATE
ENABLE_TRACE
WIN32
EXOSIP_EXPORTS
_WINDOWS
_USRDLL
_DEBUG
_MT
exosip添加编译依赖项
exosip依赖osip,osipparse2库
生成依赖项中选择项目依赖项
调用工程属性配置
附加包含目录
..\..\..\openlibrary\exosip\src
..\..\..\openlibrary\osip\include
..\..\..\openlibrary\exosip\include
附加库目录
..\..\..\project\studyboost\v141\Win32\Debug
附加依赖项
eXosip.lib
osip2.lib
osipparser2.lib
Dnsapi.lib
依赖关系
libosip 编译生成 libosipparser2 和 libosip2,libosip2 依赖 libosipparser2
libeXosip 编译生成 libeXosip2,依赖libosipparser2 和 libosip2
测试例子
编译问题
1无法解析的外部符号 _DnsFree
错误 LNK2019 无法解析的外部符号 _DnsFree@8,该符号在函数 __eXosip_dnsutils_srv_lookup 中被引用
错误 LNK2019 无法解析的外部符号 _DnsQueryConfig@24,该符号在函数 _eXosip_dnsutils_naptr 中被引用
错误 LNK2019 无法解析的外部符号 _DnsQuery_UTF8@24,该符号在函数 __eXosip_dnsutils_srv_lookup 中被引用
解决方案
附加以来项添加Dnsapi.lib
2error C2011: “sockaddr”:“struct”类型重定义错误
添加WIN32_LEAN_AND_MEAN到预处理器