osip开源库在windows平台上编译

背景

之前写过一篇关于sip协议栈选型的文章,最终采用了osip 2.3.6版本,文章中说明了为什么采用osip协议栈,以及为什么采用2.3.6版本。现在Linux上的产品已经基本满足需求了,接下来我们打算开发一套客户端和服务端对接,考虑到windows与Linux使用同一套源码,减低维护成本,所以在windows下我们依旧选择2.3.6版本,在编译的时候遇到一些坑,在此记录一下,方便自己和道友后续参考。

本次编译使用的硬件环境是windows10 + vs2017

编译

osip使用包含两个原码包,osip与eXosip,其中eXosip依赖于osip,所以我们先编译osip源码包,osip源码包包含两个库,分别是osip2和osipparser2。

osip编译

编译windows sdk version 选择8.1。如果选10.0编译失败,原因未知。

由于源代码与对于部分函数未导出,所以如果编译生成动态库,在编译libeXosip时会报错,需要我们手动补充几个未导出的函数。

osip2.def

文件尾添加

     osip_transaction_set_naptr_record @138

osipparaser2.def

文件尾添加

     osip_realloc @416
     osip_strcasestr @417 
     __osip_uri_escape_userinfo @418

 点击编译生成即可,完成osip编译。

eXosip编译

windows sdk 版本参考osip,依旧选在8.1。添加osip的头文件与生成库,去掉openssl的宏定义,添加4个系统依赖库“WSock32.Lib WS2_32.Lib DnsAPI.Lib IPHlpApi.Lib”,即可。

 点击编译生成即可完成libeXosip库的编译。

猜你喜欢

转载自blog.csdn.net/heibao111728/article/details/131373216