VS2008下编译ptlib和opal Opal作为SIP协议栈和新的H323协 议栈,而且以原来的确openh323开发人员为班底,在VoIP当 有很大的潜力,由于早期研究过一些openh323,现在更喜欢SIP协 议,所以初次下载来编译看看。 环 境是:windows xp sp2加上VS2008TeamSuite版 1 下载ptlib和opal ptlib下 载:svn co https://opalvoip.svn.sourceforge.net/svnroot/opalvoip/ptlib/trunk/ ptlib opal下 载:svn cohttps://opalvoip.svn.sourceforge.net/svnroot/opalvoip/opal/trunk/opal 2 设置环境 1. 下载bison工具,解压到C盘, 目录为C:\Tools 2. 打工VS2008:“工具/选项/项目和解决方案/VC++ 目 录” Ø 在“可执 行文行”目录加入: C:\Tools E:\Rooney\videoconf\opalvoip\project\ptlib\lib E:\Rooney\videoconf\opalvoip\project\opal\lib Ø 在“包含 文件”目录加入 E:\Rooney\videoconf\opalvoip\project\ptlib\include E:\Rooney\videoconf\opalvoip\project\opal\include Ø 在“库文 件”目录加入: E:\Rooney\videoconf\opalvoip\project\ptlib\lib E:\Rooney\videoconf\opalvoip\project\opal\lib 3 编译ptlib 打开ptlib(当然是用VS2008),先在DEBUG模式下编译,如果DEBUG过 了,RELEASE是应该没有问题。 1. 直接编译configure 一 般况下都可以顺利通过,编完之后,可以检查一下E:\Rooney\videoconf\opalvoip\project\ptlib目录下是不是多了一个configure.exe可执行文件 2. 编译MergeSym 这时会出错: Ø 一是找不 到IPV6需的头文件和库(如说没有tpipv6.h文件),本来我是想用起IPV6,由于去微软网站下载新的SDK装 上也没有相应的头文件,由于我放弃了IPV6(不知有没有谁能解决这问题,让ptlib用 起IPV6),放弃IPV6的办法是:修改E:\Rooney\videoconf\opalvoip\project\ptlib\include\ptbuildopts.h(该文件是在编译ptlib时查找环境自动生成的)。红色部分为修改部分。
将上面的修改为:
Ø 二是居然 说”MergeSym”不是可执行命令,这在以为openh323是没有碰到的,由于我把生成的MergeSym.exe(在E:\Rooney\videoconf\opalvoip\project\ptlib\bin\MergeSym\Debug下)文件拷贝到E:\Rooney\videoconf\opalvoip\project\ptlib还是不报同样的错,我只能把MergeSym.exe拷贝到E:\Rooney\videoconf\opalvoip\project\ptlib\Lib,然后再去编译,终于通过了,本来相在VS项目中写入这样的脚本,但考虑ptlib项目是经常更新的,修改了就不同步了,由于只能记录下来,为下次编译作参考,这也是写这说明的重要原因。 3. 直接编PTLib DLL通 过 4. 直接编译PTLib Static通 过 5. 检查文件,在目录E:\Rooney\videoconf\opalvoip\project\ptlib\Lib有文件如下:
注意:
Configure 的 参数 可以设置: .\configure--disable-ipv6 --disable-openssl--disable-java --disable-fax --disable-h323--disable-iax2 --disable-t38--disable-lids--disable-odbc --disable-sdl --disable-openldap --disable-dsound --disable-dshow--disable-vidfile --disable-httpsvc--disable-httpforms--disable-ffvdev --disable-ftp --disable-telnet--disable-plugins
可能出现如下错误 //编译时 出现错误 syslog.h 中 的 #define 的定义有换行 ,不能换行 。 错误 2 errorBK1506 : 无法打开文件“..\..\..\Lib\Debug\collect.sbr”: No such fileordirectory BSCMAKE 错误 1 errorC4335: 检测到 Mac 文件格式: 请将源文件转换为DOS 格式或 UNIX 格式 g:\SipMeeting\opal\Opal3.8_cs\ptlib\include\ptlib\syslog.h 1 错误 3 fatalerror LNK1104: 无法打开文件“ptlibsd.lib” MergeSym opal的编译 4 编译opal 编 译opal并没有什么特别要注意的,打开opal(当然是用VS2008了),然后编译”OPALStatic”和”OPAL_dll”,都是DEBUG模式编译,不过这里也有一个问题是将“MergeSym.exe”拷贝到opal当 前路径E:\Rooney\videoconf\opalvoip\project\opal下,编译后文件列表如下:
自己的编译: .\configure--no-search --disable-java --disable-fax--disable-h323--disable-iax2 --disable-t38 --disable-lids --disable-mixer--disable-pcss--disable-ivr 然后直接编译
|
转自:http://hi.baidu.com/liyong042/blog/item/f06e9d183a77ba5e42a9ad68.html