最近想在自己的p2p系统中整合进I’M,调研的结果,libjingle各方面都符合要求,准备基于libjingle开发自己的I’M系统,第一步,当然是编译libjingle程序了,但是在网上找了一圈,要么是语焉不详,要么是极其简单,没有办法,只有自己一步步摸索了,同时将步骤整理在blog上,希望后来人少走弯路。
1. 首先下载libjingle的源代码,在如下地址:https://sourceforge.net/projects/libjingle/,我下载的是libjingle-0[1].4.0版本
2. 然后安装Visual C++ 2005 Express Edition,具体下载地址,google一把,非常多的链接。
3. 安装好Visual C++ 2005 Express Edition后,需要安装platform SDK,在如下地址中下载:http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm,按照提示说明安装platform SDK。
4. 在sourceforge.net上下载Expat XML Parser ,地址如下:http://sourceforge.net/project/downloading.php?group_id=10127&use_mirror=nchc&filename=expat_win32bin_2_0_0.exe&33064126,我下载的是2.0.0版本,安装完成后,需要到Visual C++ 2005 Express Edition版本中更新选项,Tools-》Options-》Projects and Solutions-》VC++ directories
Library files: C:\Expat-2.0.0\StaticLibs
Include files: C:\Expat-2.0.0\Source\Lib
Include files: C:\Program Files\Microsoft SDK\include
5. 编译工程,仍旧有以下提示:
------ Build started: Project: libjingle, Configuration: Debug Win32 ------
Compiling...
gipslitemediaengine.cc
d:\p2p\xmpp\libjingle\libjingle-0[1].4.0\libjingle-0.4.0\talk\session\phone\gipslitemediaengine.h(33) : fatal error C1083: Cannot open include file: ''talk/third_party/gips/Interface/GipsVoiceEngineLite.h'': No such file or directory
channelmanager.cc
d:\p2p\xmpp\libjingle\libjingle-0[1].4.0\libjingle-0.4.0\talk\session\phone\gipslitemediaengine.h(33) : fatal error C1083: Cannot open include file: ''talk/third_party/gips/Interface/GipsVoiceEngineLite.h'': No such file or directory
winfirewall.cc
d:\p2p\xmpp\libjingle\libjingle-0[1].4.0\libjingle-0.4.0\talk\base\winfirewall.cc(29) : fatal error C1083: Cannot open include file: ''netfw.h'': No such file or directory
Generating Code...
Build log was saved at "file://d:\p2p\xmpp\libjingle\libjingle-0[1].4.0\libjingle-0.4.0\talk\Debug\BuildLog.htm"
libjingle - 3 error(s), 0 warning(s)
6. 前面两个编译错误,可以通过下载GipsVoiceEngineLite包完成,但是现在GipsVoiceEngineLite是需要许可才能下载,由于项目中暂时不需要语音功能,所以在项目中去掉了session\phone子项目,前面两个编译错误消失。
7. 在http://www.codeproject.com/KB/winsdk/WinXPSP2Firewall.aspx中下载WinXPSP2Firewall_demo文件包,将icftypes.h和netfw.h拷贝到\talk\base目录下,在base工程中加入icftypes.h文件。
8. 重新编译,libjingle - 0 error(s), 0 warning(s)
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========大功告成,libjingle编译成功。
来源:oschina
链接:https://my.oschina.net/u/108752/blog/11152