• 【技术应用】vs2010 下编译 libjingle 库


      “每个行业都存在机会,就看你会不会寻找。而要找到这种机会,你只需找到两个人:一个是想花钱的那个人,另一个是想挣钱的那个人”

      由于我朋友公司出了些问题,萌生了写一个行业信息发布平台软件的想法。

      由于对整个过程没有把握, 确切的说,我是那个想挣钱的人,而我对想花钱的那个人没有把握,

      那么,我就利用免费的东西做个吧。

      想了好多个方案,最让我动心的是使用silverligth技术做前端,自己架设一个服务器,可是在钱途不明朗的情况下,不敢贸然买个服务器,网上又没有找到可免费或租用的服务器,此方案只能暂缓

       

      思考筛选N多个方案后,我对gtalk感上了兴趣,google大公司的背景,我可以放心的去折腾 

      Libjingle - Google Talk Voice及 P2P 的交互操作函数库

      Libjingle是Google提供的C++组件集,它为Google Talk的点对点通讯与语音呼叫功能提供交互操作性。
      组件包包括了Jingle和Jingle-Audio的google实现的源代码,它们是XMPP标准的推荐扩展。
      Google的源码发布基于Berkeley协议,也就是说你可以把它们合并到商业或非商业的软件中并发布。

    准备:

      1、 python 2.7.1 

      2、libjingle库

      3、 swtoolkit

      4、 srtp

      5、scons 

      6、vs 2010

      7、windows server 2008 r2 [这是我的系统,其他系统没有测试] 

    编译:

      按照ligjingle文档上的说明配置环境,vs 2010命令行编译,

          也可以按照libjingle中,main.scons说明生成vs工程,然后打开工程文件编译 

    问题:

      1、 TypeError: object of type 'Dir' has no len():

        python版本的问题,可以换一个版本 

      2、 ligjingle默认scons文件没有对32位,64位进行设置(0.5.1有此问题,0.5.2已经没有此问题了)

        修改 talk目录下的main.scons,root_env加入TARGET_ARCH = 'x86',

    root_env = Environment(
      tools 
    = [
        
    'component_bits',
        
    'component_setup',
        
    'replace_strings',
        
    'talk_noops',
        #
    'talk_linux',
      ],
      BUILD_SCONSCRIPTS 
    = components,
      DESTINATION_ROOT 
    = '$MAIN_DIR/build',
      CPPPATH 
    = [
        
    '$OBJ_ROOT',     # generated headers are relative to here
        
    '$MAIN_DIR/..',  # TODO: how can we use GOOGLECLIENT instead?
      ],
      CPPDEFINES 
    = [
        # Temp flag 
    while porting to hammer.
        
    'HAMMER_TIME=1',
        
    'LOGGING=1',

        # Feature selection
        
    'FEATURE_ENABLE_SSL',
        
    'FEATURE_ENABLE_VOICEMAIL',
        
    'FEATURE_ENABLE_PSTN',
        
    'HAVE_SRTP',
      ],
      TARGET_ARCH 
    = 'x86',
    )

      3、 修改 talk目录下的main.scons,注释掉警告视为错误开关

     # '/WX', # warnings are errors

      4、 修改 talk目录下的main.scons,编译vs工程文件需,把注释掉的放开

      # Solution and target projects
      s = vs_env.ComponentVSSolution(
        # 'libjingle',  # Please uncomment this line if you build VS proj files.
        ['all_libraries', 'all_programs', 'all_test_programs'],
        projects = [p],
      )

     改为

      # Solution and target projects
      s = vs_env.ComponentVSSolution(
         'libjingle',  # Please uncomment this line if you build VS proj files.
        ['all_libraries', 'all_programs', 'all_test_programs'],
        projects = [p],

      ) 

      5、生成vs工程文件, visual studio cmd 进入talk目录下,执行

    hammer --mode=all --vsproj 

        

         6、为了去掉下面的warning, 可以安装pywin32:

    "
    Warning: Unable to load win32file module; using copy instead of hard linking for env.Install().  Is pywin32 present?
    "

    pywin32 - Python Extensions for Windows

    http://sourceforge.net/projects/pywin32/files/pywin32/ 

  • 相关阅读:
    函数要多小才够好——谈小函数之道
    vb.net 打字练习
    vb.net 打字练习
    vb.net 打字练习
    unsigned int 与 unsigned long 一样吗?
    epoll使用详解(精髓)
    论epoll的使用 高调coding,低调做人 C++博客
    学习使用epoll The time is passing ITeye技术网站
    ubuntu下sed命令详解 Dicky 开源中国社区
    分享:jquery遍历之children()与find()的区别
  • 原文地址:https://www.cnblogs.com/ningth/p/1924703.html
Copyright © 2020-2023  润新知