osip和exosip在windows下的编译静态库
2011-08-11 18:34
337 查看
1. 微软的platform sdk xp-sp2安装 : http://hi.baidu.com/xiquegg/blog/item/a9b1eea3d54d998746106478.html 2.下载源代码: libosip2-3.0.1.tar.gz: http://ftp.gnu.org/gnu/osip/ libeXosip2-3.0.1.tar.gz: http://download.savannah.gnu.org/releases/exosip/ 3..编译过程: =================================================== 文章可以任意转载,但是请注明出处 http://hi.baidu.com/yangkaiii =================================================== 编译osip,exosip协议栈的时候遇到很多的问题,不过终于通过了,现在将整个编译的过程和其中遇到的问题详细总结出来。 开发环境:Windows XP SP2 VC++ 6.0 (一)编译osip的静态链接库(*.lib)和动态链接库(*.dll),以便我们自己开发的程序能够使用它们来成功编译和执行。 1. 得到OISP的解析器开发库(osipparser2.lib,osipparser2.dll): Ø osipparser2.lib: · 首先创建一个新的Win32静态链接库工程(Win32 Stastic Library),然后将oSIP版本*.*.*下的src目录下的osipparser2目录下的所有文件都考到我们刚创建的工程的根目录下,然后再在VC6上操作:Project->Add to Project->Files,将所有的源程序和头文件都加入到工程内,然后保存工程,。 · 再将oSIP源码包中的Include目录下的osipparser2文件夹直接拷到VC6的安装目录的Include文件夹下(如:D:\Program Files\Microsoft Visual Studio\VC98\Include),或者在Tool->Options->Directories里设置路径也行(这样就不用拷贝文件了,直接把oSIP源码包所在的目录加进来就可以了)。 · 多线程编译,不然之后调用osip线程库时会出错。 ü 在Project->Setting->C/C++中“分类”一项中选择“常规”,然后在“预处理程序定义”一项中,加入OSIP_MT,MT,NEW_TIMER三个宏以支持多线程; ü 在选择“分类”项中的“Code Generation”,在“Use run-time library”中选择“Multithread”,多线程编译。 · 因为VC6自带的开发库太老了,之后再编译exosip的时候会出现很多莫名其妙的错误,所以顺便在这里就先升级一下系统的的Platform SDK(可以从微软的网站去下),安装在F盘(F:\psdk include & lib[1]),然后在VC6中使用这个PSDK,在Tool->option->Directories里设置,在“路径”中加入“F:\psdk include & lib[1]\Include”即可。 ·OK,现在可以编译工程了(为了防止日后返工,所以这里做了比较多的工作),编译后在Debug文件夹得到了osipparser2.lib。 Ø osiparser2.dll: · 与上面创建静态链接库的方法类似,不同的是要首先创建一个新的Win32动态链接库工程(Win32 Dynamic-Link Library),然后按照上面所述步骤处理,最后编译得到osipparser2.dll。 2. 得到OISP的协议栈开发库(osip2.lib,osip2.dll): · 同样按照上述方法,分别创建动态链接库工程和静态链接库工程,只是要拷贝的文件换成了源码包中src目录下的osip2文件夹下的文件和include目录下的osip2文件夹而已。 · 在编译osip2.dll的时候可能会出错,原因说是找不到链接库,所以将前面编译得到的osipparser2.lib文件也考到这个新建的动态链接库工程目录下,并在VC6中操作:Project->Setting->Link中的Object/Library Modules栏中,在kernel32.lib,user32.lib。。。之后加上osipparser2.lib,保存后再次编译,可成功编译osip2.dll。 至此,我们得到了完整的OSIP开发库,使用时,只需要在我们的程序中包含OSIP头文件,工程的链接参数中增加osip2.lib和osipparser2.lib即可。 (二).编译eXosip的静态链接库:(exosip.lib) 由于oSIP是比较底层的SIP协议栈实现,新手较难上手,而官方的示例大都是一些伪代码,需要有实际的例子程序参考学习,而最好的例子就是同样官方发布的oSIP的扩展开发库exosip2,使用exoSIP可以很方便地快速创建一个完整的SIP程序(只针对性地适用于SIP终端开发用,所以我们这里只是用它快速开发一个SIP终端,用来更方便地学习oSIP,要想真正掌握SIP的开发,需要掌握oSIP并熟读RFC文档才行,exoSIP不是我们的最终学习目的),通过成功编译运行一个自己动手开发出的程序,再由浅入深应该是初学都最好的学习方法通过对使用exosip开发库的使用创建自己的SIP程序,熟悉后再一个函数一个函数地深入学习exosip提供的接口函数,就可以深入理解osip 了,达到间接学习oSIP的目的,同时也能从eXoSIP中学习到正确使用oSIP的良好的编程风格和语法格式。 · 和之前描述的方法基本一致,首先创建Win32静态链接库工程,然后将eXosip源码包中的src目录下的所有文件都考到新建的工程目录下,并且在VC6中加入这些文件。 · 将源码包中的inlude文件夹也整个考到新建的工程目录下。 · 按照上述方法,进行多线程编译的设置; · 按照上述的方法,设置PSDK的使用; · 编译得到exosip.lib。 |
相关文章推荐
- osip和exosip在windows下的编译静态库
- Windows下编译eXosip、osip
- Windows下编译eXosip、osip(成功编译2-3.6)
- windows 下 osip 3.5 和 exosip 3.5 库的编译
- osip及eXosip的windows编译开发链接
- Windows下编译eXosip、osip,以及UAC和UAS的例子
- Windows下编译eXosip、osip,以及UAC和UAS的例子
- 【GBT28181开发:SIP协议实践】之Windows下编译eXosip、osip
- osip及eXosip的编译及开发方法 和 eX.osip3.0.1在Windows下编译方法及简单UA示例
- Windows下编译eXosip、osip,以及UAC和UAS的例子
- 【GBT28181开发:SIP协议实践】之Windows下编译eXosip、osip
- 【GBT28181开发:SIP协议实践】之Windows下编译eXosip、osip
- VS2005下编译OPEN SOURCE CODE成DLL的问题 oSip eXoSip
- Xcode环境下osip,eXosip, openssl的静态库编译方法(编译出来给IOS使用)
- oSIP和eXosip编译过程
- Visual Studio 2010下编译osip及eXosip并搭建开发环境的方法
- osip及eXosip的编译方法
- eXosip入门(一):vs2008编译osip/eXosip
- Clion + Cygwin64 编译 osip + eXosip
- Xcode环境下osip,eXosip, openssl的静态库编译方法(编译出来给IOS使用)