Linux下oSIP的编译使用应该是很简单的,其Install说明文档.doc
Linux下oSIP的编译使用应该是很简单的,其Install说明文档里也介绍的比较清楚,本文主要就oSIP在Windows平台下VC 6.0开发环境下的使用作出描述。 虽然oSIP的开发人员也说明了,oSIP只使用了标准C开发库,但许多人在Windows下使用oSIP时,第一步就被卡住了,得不到oSIP的LIB库和DLL库,也就没有办法将oSIP使用到自己的程序中去,所以第一步,我们将学习如何得到oSIP的静态和动态链接库,以便我们自己的程序能够使用它们来成功编译和执行我们的程序。第一阶段: 先创建一个空白的Win32动态链接库工程并保存。将oSIP版本3.0.1 src目录下的osipparser2目录下的所有文件都拷到我们刚创建的工程的根目录下,在VC 6.0上操作: Project-Add To Project-Files 将所有的源程序和头文件都加入到工程内,保存工程。 这时,编译一下工程会得到许多错误提示信息,其内容无非是找不到osipparser2/xxxxx.h头文件之类。 处理:在Linux下,我们一般是将头文件,lib库都拷到/usr/inclue;/usr/lib之类的目录下,C源程序里直接写#include 时,能直接去找到它们,在VC 6.0里,同样的,最简单的方法就是将osip2源码包中的include目录下的 osipparser2目录直接拷到我们的Windows下默认包含目录即可,这个目录在VC 6.0的Tool-Options-Drectories里设置,(当然,如果你知道这一步,也可以不用拷贝文件,直接在这里把oSIP源码包所在目录加进来就可以了),默认如果装在C盘,目录则为 C:\Program Files\Microsoft Visual Studio\VC98\Include。 这时,我们再次编译我们的工程,顺利编译,生成osipparser2.dll,再创建一个工程,同上述创建动态链接库方法,创建一个Win32静态链接库工程,直接编译,即可得到osipparser2.lib。 上面,我们得到了oSIP的解析器开发库,下面再编译完整的oSIP协议栈开发库,同样照上述方法,分别创建动态链接库工程和静态链接库工程,只是要拷的文件换成src下的osip目录下文件和include下的osip目录下文件,得到osip2.dll和osip2.lib。 在编译osip2.dll这一步可能会再次得到错误,内容含义是找不到链接库,所以,我们要把前面编译得到的osipparser2.lib也拷到osip工程目录下,并在VC 6.0中操作: Projet-Setting-Link中的Object/Library Modules: kernel32.lib user32.lib ... xxx.lib之类的内容最后增加: osipparser2.lib。保存工程后再次编译,即可成功编译osip2.dll。 至此,我们得到了完整的oSIP开发库,使用时,只需在我们的程序里包含oSIP的头文件,工程的链接参数里增加osipparser2.lib和osip2.lib即可。 下面我们验证一下我们得到的开发库,并大概了解一下oSIP的语法规范。 在VC里创建win32控制台程序工程,将libosip源码包的src目录下的test目录内的C源程序随便拷一个到工程时,直接编译(工程设置里照前文方法在link选项里增加osip2.lib,osipparser2.lib引用我们之前成功编译得到的静态库文件)就可以运行(带参数运行,参数一般为一个文本文件,同样从test目录的res目录里拷一个与源文件同名的纯文本文件到工程目录下即可)。 该目录下的若干文件基本上是测试了oSIP的一些基本功能函数,例如URI解析之类,可以大概了解一下oSIP的语法规范和调用方法,同时也能校验一下之前编译的oSIP开发库能否正常使用,成功完成本项工作后,可以进入下一步具体的oSIP的使用学习了。
要成功编译eXoSIP,直接在XP-SP2上,用VC 6.0,虽然你使用了eXoSIP推荐的winsock2.h,但是会得到一个 sockaddr_storage结构不能识别的错误,因为vc6自带的开发库太古董了,需要升级系统的Platform SDK。 成功安装后编译前需加OSIP_MT宏,以启用线程库,否则在程序中使用eXoSIP库时会出错,而编译时也会得到许多函数未定义的Warning提示,编译得到exosip2.lib供我们使用,当然,在此之前需要成功编译了osip2和osipparser2,而在之后的实际使用时,发现oSIP也需要增加o