vs2010下编译osip2和eXosip2的4.0.0版的静态库及搭建开发环境
转载于:http://blog.csdn.net/lbc2100/article/details/48293911
本文为参考网上的动态库的方式,进行静态库的实现,在此对动态库的作者表示感谢。
第一步,下载:
到http://ftp.gnu.org/gnu/osip/libosip2-4.0.0.tar.gz下载osip2库并解压。
到http://download.savannah.gnu.org/releases/exosip/libeXosip2-4.0.0.tar.gz下载eXsoip2库并解压。
第二步,编译osip2: 1、用VS2010打开libosip2-4.0.0/platform/vsnet/osip.sln
2、VS2010会打开转换向导,直接下一步
3、在转换之前,是否创建备份?选择《否》
4、完成转换。
5、选择osip2项目,编译生成Debug(使用静态库)
6、选择osipparser2项目,编译生成Debug
7、或选择《生成解决方案》进行一起编译生Debug(使用静态库) (本文档采用这个方式)
8、从Debug 文件夹中复制出osip2.libosipparser2.lib文件备用
第三步,编译eXosip2:
1、 用VS2010打开libeXosip2-4.0.0\platform\vsnet\eXosip.sln
2、 VS2010会打开转换向导,直接下一步
3、在转换之前,是否创建备份?选择《否》
4、完成转换。
5、我们暂时用不到openSSL,所以 工程名-->右击-->属性-->配置属性-->C/C++-->预处理器-->预处理器定义里面的HAVE_OPENSSL_SSL_H宏去掉
6、在工程名-->右击-->属性-->配置属性-->C/C++ --> 常规 --> 附加包含目录: 将osip的头文件libosip2-4.0.0\include包含进来
7、在项目转换的过程中,会在Source Files中多出一个eXtl.c文件,需要删除。
8、编译、生成Debug的eXosip.lib(静态库)
第四步,新建SIP通信项目
1、 在工程目录下,建立include目录用于存放osip2、osipparser2、eXosip2的头文件。
2、 在工程目录下,建立libosip2_a_debug目录用于存放第二、第三步生成的库文件。
3、 工程名-->右击-->属性-->配置属性-->链接器 --> 输入 -->附加依赖项:增加静态库引用:Dnsapi.lib;Iphlpapi.lib;Ws2_32.lib;eXosip.lib;osip2.lib;osipparser2.lib;
4、 工程名-->右击-->属性-->配置属性-->C/C++ -->常规 -->附加包含目录: 将osip和eXosip的头文件include包含进来
5、 工程名-->右击-->属性-->配置属性-->链接器 --> 常规 --> 加附库目录:将osip和eXosip的库包含进来,libosip2_a_debug
6、对于使用动态库,需要把osip2.dll、osipparser2.dll放入Debug目录下。(此外不用)
7、在使用动态库时,可能会出现error LNK2019 无法解析的外部符号的错误,如下图所示产生这些错误是因为需要用到的一些函数在osip库在def文件中没导出。需要修改\libosip2-4.0.0\platform\vsnet目录下面的osip2.def、osipparser2.def两个文件,在文件的末尾导出这些函数,具体如下: 到libosip2-4.0.0\platform\vsnet目录下找到osip2.def和osipparser2.def文件,打开osip2.def文件,在最末尾加一行 osip_transaction_set_naptr_record @138 打开osipparser2.def文件,在文件最后添加 osip_realloc @416 osip_strcasestr @417 __osip_uri_escape_userinfo @418 保存,关闭。回到第二步重新执行即可。
至此,eXosip开发的环境已经搭建完成。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?