^_^

2010年11月12日星期五

LibJingle5 (for Win) 编译指南

LibJingle 5 出炉,一定是要玩玩的,要玩首先就是要编译过,还是先来 Windows 平台的吧。

官方的编译指南参见《README》的第二段“How to Build”,已经是比较详细了,我们这里再详细一些。
  1. http://www.python.org 下载最新的 Python 2.7 Windows installer,一路 Next 安装之。这里注意将 Python 的路径加入 %PATH% 环境变量,是要 cmd - python 没有报错就 ok 了。
  2. 安装 SCons, 有多种方法:normal SCons、scons-local、scons-src 及 Windows 安装包。当然是第四种最最方便,下载路径为 http://prdownloads.sourceforge.net/scons/scons-2.0.1.win32.exe。在 Windows 7 下安装的时候,注意用“以管理员身份运行”。以此方法 SCons 将被安装到 C:\Python27\Lib\site-packages\scons-2.0.1 中。此外还需要为 SCons 添加环境变量:
    SCONS_DIR - C:\Python27\Lib\site-packages\scons-2.0.1
  3. 从 http://code.google.com/p/swtoolkit 下载 swtoolkit.0.9.1.zip,直接解压即可。我这里解压到 \LibJingle5\packages\swtoolkit 目录下。
  4. 下载 LibJingle 的两个依赖库:expat 的 expat-2.01.tar.gzsrtp。srtp 需要 CVS 去获取太麻烦了,Google 很贴心的,抓了版本放到 LibJingle 的 downloads 中,我们直接下载即可,也不会出现拿错版本的问题了。
  5. 官网下载 libjingle-0.5.1.zip,解压到 \LibJingle5\libjingle-0.5.1 下。
  6. 再把 step 4 中下载的 expat 解压到 \LibJingle5\libjingle-0.5.1\talk\third_party\expat-2.0.1;而 srtp 解压到 \LibJingle5\libjingle-0.5.1\talk\third_party\srtp。
  7. 对于 srtp,我们还需要将文件 \LibJingle5\libjingle-0.5.1\talk\third_party\srtp\config.hw 拷贝覆盖到 \LibJingle5\libjingle-0.5.1\talk\third_party\srtp\crypto\include\config.h。
  8. 在编译前,当然还要确保 MS Visual Studio 已经正确安装。
  9. 打开命令提示符,进入\LibJingle5\libjingle-0.5.1\talk\ 目录,键入  \LibJingle5\packages\swtoolkit\hammer.bat,回车及开始编译。
    D:\LibJingle5\libjingle-0.5.1\talk>D:\LibJingle5\packages\swtoolkit\hammer.bat
    scons: Reading SConscript files ...
    Warning: Unable to load win32file module; using copy instead of hard linking for env.Install(). Is pywin32 present?

    scons: warning: The build_dir keyword has been deprecated; use the variant_dir keyword instead.
    File "D:\LibJingle5\packages\swtoolkit\site_scons\site_init.py", line 203, in BuildEnvironmentS
    Conscripts
    scons: done reading SConscript files.
    scons: Building targets ...
    ________Compiling build\dbg\obj\third_party\expat-2.0.1\lib\xmlparse.obj
    xmlparse.c
    ________Compiling build\dbg\obj\third_party\expat-2.0.1\lib\xmlrole.obj
    xmlrole.c
    ________Compiling build\dbg\obj\third_party\expat-2.0.1\lib\xmltok.obj
    xmltok.c
    ________Creating library build\dbg\obj\expat.lib
    Install file: "build\dbg\obj\expat.lib" as "build\dbg\lib\expat.lib"
    ...
    scons: Nothing to be done for `all_test_programs'.
    scons: done building targets.
  10. 成功编译后,生成文件位于 \LibJingle5\libjingle-0.5.1\talk\build\dbg\staging。
注意,用 MS VS2010 编译的时候,会报告“socket.h C2220 warning treated as error - no object file generated”,导致无法成功编译,而 MS VS2005/2008 都没有该问题。这是由于 VS2010 编译器更加严格造成的,只要去除 \LibJingle5\libjingle-0.5.1\talk\main.scons 文件中下面这个编译开关即可:
# '/WX', # warnings are errors
另外,哪位高手对 SCons 熟悉的,能否知会大笨熊如何从 Scons 生成 MSVC 的工程?
本站文章除注明外,均为本站原创
转载请注明文章转载自: 大笨熊乐园 [ http://blog.foolbear.com/ ]
文章标题: LibJingle5 (for Win) 编译指南
文章地址: http://blog.foolbear.com/2010/11/libjingle5-for-win.html

5 条评论 :

大笨熊 说...

在 64bit Windows7 下,还会有 error “fatal error C1189: #error : You cannot use 32-bit time_t (_USE_32BIT_TIME_T) with _WIN64”,解决方法参见“libjingle does not compile on Windows 7 x64”, from http://code.google.com/p/libjingle/issues/detail?id=78:
As a workaround, you can add the following line after line 62 in the "main.scons" file.
It would be read like this:
....
'HAVE_SRTP',
],
TARGET_ARCH = 'x86',
)

大笨熊 说...

FYI:
build libjingle for iphone iPhone OS platform

暗之执法者 说...

最后一个提示很有用哦,多谢~

大笨熊 说...

Welcome。
现在 Libjingle 项目更新频繁,没有想到我这么早写的文章还有值得借鉴的地方。

大笨熊 说...

thanks!

发表评论

Related Posts with Thumbnails