一个完整的编译Ptlib.Opal 的教程
2010年4月29 22:09 看完<美丽心灵>特别震撼.
想到以前你第一次到我家的情景.有点伤感.还是把它埋在内心深处吧
好好的生活.努力把音视频的知识打扎实。
接下来的时间就好好研究 ptlib和Opal的知识。并把学习的过程记录下来
1.从开源中国下载Ptlib最新的版本.ptlib-2.8.0-src.zip
2.先单独编译Configure分别用Debug和Release 的版本.记得是仅编译(Configure项目).要不然会等待很长的编译时间.默认单击运行 在VS20005会编译该解决方案中所有的项目
3.然后编译MergeSym项目。把生成的MergeSym.exe可执行文件 复制到\ptlib\src\ptlib\msos文件下面.
要不然编译PTLib DLL会报错.下面是报错的信息报告
"错误 1 error PRJ0019: 工具从"Merging symbols ..." PTLib DLL"
4.编译 PTLib Static 则不用依靠 MergeSym.exe程序
5.最好生成的库文件有.放在Lib目录下面
(PTLib Static的Debug和Release版本) ptlibsd.lib,ptlibs.lib
(PTLib DLL的Debug和Release版本) (PTLibd.lib.PTLibd.dll) (PTLib.lib.PTLib.dll )
6.包含文件为\ptlib\include
7.dnstest,dtmftest等等项目 必须设置库文件的路径和头文件的路径.(..\..\include,..\..\lib)
8.该解决方案中有些项目依赖外部的库.目前编译不了.例如.ldaptest,paec,pxmlTest,vxmltest,xmlrpc
xmlrpcsrvr,xmpptest。把这些项目暂时从该解决方案卸载出去.等以后哥研究透了.再看看是怎么编译的
编译opal
1.从开源中国下载Ptlib最新的版本.opal-3.8.0-src
2.打开opal-3.8.0-src\opal\opal_samples_2005.sln.会提示加载ptlib\src\ptlib\msos\ptlib_2005.vsproj.失败.原因是该项目还没有和ptlib项目联系在一起.暂时不管.按确定即可
3.把ptlib-2.8.0-src该文件夹下面的ptlib文件夹所有的内容复制到opal-3.8.0-src文件夹下面.该文件夹下面现在就有了opal和ptlib文件夹.
4.在opal_samples_2005解决方案中.把PTLib DLL和PTLib Static重新加载项目.
5.先编译OPAL_Static项目. 记得要单独编译.一个一个项目的编译.要不然会等待太长的时间.等得你没有耐心了 编译OPALStatic需要十分钟的时间.这个要看你的机器性能.要有耐心.(靠.为了重新编译这个项目.花了好长时间.估计是我的机器太差了).
设置头文件和库文件 (..\..\lib;..\..\..\ptlib\lib) (..\..\include;..\..\..\ptlib\include)
6.第一次编译的时候会报 错误
error C4335: Mac file format detected: please convert the source file to either DOS or UNIX format g:\source\开源\opal-3.8.0-src\opal\src\opal\recording.cxx
error C4335: Mac file format detected: please convert the source file to either DOS or UNIX format g:\source\开源\opal-3.8.0-src\opal\src\ruby\ruby_msvc_wrapper.cxx
双击该错误.定位到该文件.并按保存.重新编译就OK了.估计是VS2005暂时不识别CXX后缀名的文件.
7.最后生成的库文件有.放在Lib目录下面
(OPAL Static的Debug和Release版本) opalsd.lib,opals.lib
(OPAL DLL的Debug和Release版本) (opald.lib.opald.dll) (opal.lib.opal.dll)
8.C Interface,CallGen,CodecTest,FaxOPAL,jester,MFC, 等等项目 必须设置库文件的路径和头文件的路径.(..\..\include;..\..\..\ptlib\include,..\..\lib;..\..\..\ptlib\lib)
8.该解决方案中有些项目依赖外部的库.目前编译不了.
接下来的就研究OpenOPhone 如何编译.请大家多多关注