移植libjingle v0.5x for IOS(iphone device + iphone simulator)
2011年01月14日
本Blog用于备忘记录,请尊重转载与原创作品之作者的劳动果实。 本人专注于嵌入式Linux开发,iphone与Android手机软件开发。 gmail(gtalk):guohui.great@gmail.com
gtalk基本上可以算是非常好的聊天工具了,而它是如何工作的呢?我们如何在iphone上面为自己写一个gtalk玩一下呢?这一切都是基于libjingle这个库,这个Google Talk Voice and P2P interoperability Library.libjingle这个库是一个用c++写的跨平台的库,它能很好运行在win/mac os/linux(include android)/prosix 等平台,当然也能运行在iphone平台,毕竟ios也是unix系统,但是前面的几个平台可能并不需要对libjingle库做一些程序改动就可以很好的运行了,但是ios平台却不一样,因为libjingle库中对mac os的支持代码中,有一部分代码仅仅适用于mac os,并不适用于有众多限制的ios平台,所以其实如果想移植libjingle 到ios还是需要一些改动的,在下不才,顺利完成了这次移植,希望本文能够给你带来帮助,在些感谢libjingle project owner and ilibjingle project owner:
(转载请保留此文字:本文来源:移植libjingle v0.5x for IOS(iphone device + iphone simulator) http://blog.csdn.net/ipromiseu/archive/2011/01/14/ 6140115.aspx] write by Gray.Luo guohui.great@gmail.com)
一.environment setting:
-------------------------------------------------- -------------------------
First, install Python 2.4 or later from http://www.python.org/
Second ,install the stand alone scons-local package 2.0.0 or later from
http://www.scons.org/download.php and set an environment variable,
SCONS_DIR, to point to the directory containing SCons:
for example:
$vim /User/gray/.profile
Enter the following content: #set env of SCONS_DIR export SCONS_DIR=/Users/anson/Documents/work/scons-local- 2.0.1/scons-local-2.0.1/ $sourece /User/gray/.profile Third, install swtoolkit from http://code.google.com/p/swtoolkit/. We just download it into a place(eg:/User/gray/..../swtoolkit), It's a green tool. Finally, Libjingle depends on 3 open-source projects, expat , srtp and openssl. Download expat from http://sourceforge.net/projects/expat/ to talk/third_party/expat-2.0.1/. Download srtp from http://libjingle.googlecode.com/files/srtp-cvs.zip to talk/third_party/srtp/. note:Don't download srtp from it's official website.only one google version can work for libjingle Download openssl source code to talk/third_party/openssl-1.0.0. 二. Modify Build Parameters -------------------------------------------------- ------------------------- 1.Modify main.scons [iphone Simulator]: (1) Change '-isysroot', '/Developer/SDKs/MacOSX10.5.sdk', to '-isysroot', '/Developer/Platforms/iPhoneSimulator.platform/Dev eloper/SDKs/iPhoneSimulator3.1.2.sdk', (2)Add the following content into # M A C OSX Block mac_env.Replace(CC = '/Developer/Platforms/iPhoneSimulator.platform/Dev eloper/usr/bin/gcc-4.2') mac_env.Replace(CXX = '/Developer/Platforms/iPhoneSimulator.platform/Dev eloper/usr/bin/g++-4.2') (3)Add 'CoreAudio', 'QuickTime', 'Cocoa', and 'QTKit' to the FRAMEWORKS variable. [iphone Device]: (1) Change '-isysroot', '/Developer/SDKs/MacOSX10.5.sdk', to '-isysroot', '/Developer/Platforms/iPhoneOS.platform/Developer/ SDKs/iPhoneOS3.1.2.sdk', (2)Add the following content into # M A C OSX Block mac_env.Replace(CC='/Developer/Platforms/iPhoneOS. platform/Developer/usr/bin/gcc-4.2') mac_env.Replace(CXX='/Developer/Platforms/iPhoneOS .platform/Developer/usr/bin/g++-4.2') (3)Add 'CoreAudio', 'QuickTime', 'Cocoa', and 'QTKit' to the FRAMEWORKS variable. 2.Modify libjingle.scons (1)Comment out some files with "#",because IOS SDK is limited ,So some api is unsupport by IOS: #"base/macutils.cc", # "session/phone/devicemanager_mac.mm", # "base/proxydetect.cc", (2)Add some Header serach directory in includedirs. like: "third_party/openssl-1.0.0/include", 三.Building libjingle: -------------------------------------------------- ------------------------- 》》》How to build libjingle for iphone Simulator
1.
$ cd libjingle-0.5/talk/third_party/srtp
$ ./configure
2.
$ cd libjingle-0.5/talk/third_party/expat-2.0.1
$ ./configure
3.
$ cd libjingle-0.5/talk/third_party/openssl-1.0.0
$ ./config no-shared no-asm
4.
Build or Download openssl lib(libcrypto.a,libssl.a) for iphonesimulator to talk/build/dbg/lib
5.$/User/gray/..../swtoolkit/hammer.sh
》》》How to build libjingle for iphone
1.
$cd libjingle-0.5/talk/third_party/srtp
$./configure --host=arm CC=/Developer/Platforms/iPhoneOS.platform/Develope r/usr/bin/gcc-4.2 CXX=/Developer/Platforms/iPhoneOS.platform/Develop er/usr/bin/g++-4.2
2.
$cd libjingle-0.5/talk/third_party/expat-2.0.1
$./configure --host=arm CC=/Developer/Platforms/iPhoneOS.platform/Develope r/usr/bin/gcc-4.2 CXX=/Developer/Platforms/iPhoneOS.platform/Develop er/usr/bin/g++-4.2
3.
$cd libjingle-0.5/talk/third_party/openssl-1.0.0
$./config no-shared no-asm
4.
Build or Download openssl lib(libcrypto.a,libssl.a) for iphone device to talk/build/dbg/lib
5.$/User/gray/..../swtoolkit/hammer.sh
四.Modify libjingle source code
-------------------------------------------------- -------------------------
Refrence : http://code.google.com/p/ilibjingle/
五.XCode setting
You can refrence http://code.google.com/p/ilibjingle/
1.Add libjingle.a path in Library Search Paths
2.Add some Header path in Header Search Paths
like:
/..../talk/third_party/srtp/crypto/include/
/..../talk/third_party/srtp/include/
/..../talk/third_party/expat-2.0.1/
/..../talk/third_party/openssl-1.0.0/include/
/Developer/Platforms/iPhoneOS.platform/Developer/S DKs/iPhoneOS3.0.sdk/System/Library/Frameworks/Quart zCore.framework/Headers/ /Developer/Platforms/iPhoneSimulator.platform/Deve loper/SDKs/iPhoneSimulator3.0.sdk/System/Library/Fr ameworks/QuartzCore.framework/Headers/
3.GCC_PREPROCESSOR_DEFINITIONS:
POSIX xOSX_USE_COCOA HAMMER_TIME=1 LOGGING=1 FEATURE_ENABLE_SSL FEATURE_ENABLE_VOICEMAIL FEATURE_ENABLE_PSTN HASHNAMESPACE=__gnu_cxx DISABLE_DYNAMIC_CAST HAVE_OPENSSL_SSL_H=1 OS_MACOSX=OS_MACOSX OSX _DEBUG FLAVOR_DBG ENABLE_DEBUG FEATURE_ENABLE_VOICEMAIL EXPAT_RELATIVE_PATH SRTP_RELATIVE_PATH XML_STATIC HAVE_EXPAT_CONFIG_H MAC_OS_X_VERSION_MIN_REQUIRED=1040
(转载请保留此文字:本文来源:移植libjingle v0.5x for IOS(iphone device + iphone simulator) http://blog.csdn.net/ipromiseu/archive/2011/01/14/ 6140115.aspx] write by Gray.Luo guohui.great@gmail.com
发表评论
-
staf
2012-01-20 09:50 832staf 2010年06月02日 参与的项目正好用了st ... -
几款引擎比较:BigWorld,Unreal,CryEngine等
2012-01-20 09:50 763几款引擎比较:BigWorld,Unr ... -
『vivizhyy』SD2.0 (来源于孟岩讲座)
2012-01-20 09:50 445『vivizhyy』SD2.0 (来源于 ... -
RabbitVCS : TortoiseSVN 的替代者
2012-01-20 09:49 784RabbitVCS : TortoiseSVN 的替代者 2 ... -
规章制度
2012-01-19 14:55 588规章制度 2010年07月26日 考勤制度 1 ... -
幼儿园管理之“三贴近”
2012-01-19 14:55 608幼儿园管理之“三贴近 ... -
浅析幼儿园如何生存与发展
2012-01-19 14:55 614浅析幼儿园如何生存与发展 2010年06月29日 浅析幼 ... -
幼儿园生存与发展的报告
2012-01-19 14:55 601幼儿园生存与发展的报告 2010年06月29日 社会主 ... -
对民办幼儿园管理的几点思考
2012-01-19 14:55 557对民办幼儿园管理的几点思考 2011年07月13日 民办 ... -
OpenGL函数参考(中文版)转载
2012-01-17 04:38 1092OpenGL函数参考(中文版)转载 2011年01月17日 ... -
OpenGl函数解释(转载)
2012-01-17 04:38 369OpenGl函数解释(转载) 2011年03月11日 第 ... -
OpenGL开发库的详细介绍
2012-01-17 04:38 462OpenGL开发库的详细介绍 ... -
OpenGL总结
2012-01-17 04:38 736OpenGL总结 2010年11月24日 OpenGL学 ... -
opengl
2012-01-17 04:38 655opengl 2011年02月19日 OpenGL总结 ... -
简单学习FMS+PHP视频聊天室
2012-01-16 03:31 967简单学习FMS+PHP视频聊天室 2010年04月02日 ... -
外部FLV影片的控制
2012-01-16 03:31 383外部FLV影片的控制 2010年08月02日 有两种方式 ... -
FMS_api
2012-01-16 03:31 270FMS_api 2010年03月11日 //====== ... -
linux下的fms2流媒体服务器搭建六部曲之五:flv播放器制作篇
2012-01-16 03:31 914linux下的fms2流媒体服务器搭建六部曲之五:flv播放器 ... -
FlashCom(FMS)
2012-01-16 03:31 383FlashCom(FMS) 2009年11月26日 Fl ...
相关推荐
VS2010 编译 libjingle0.6.2 步骤 titre : VS2010 编译 libjingle0.6.2 步骤是指使用 Visual Studio 2010 将 libjingle 0.6.2 库编译的详细步骤。 描述:本文档将详细介绍如何在 VS2010 环境下编译 libjingle ...
**标题:“libjingle-0.5.1.zip”** **描述:** “libjingle-0.5.1.zip”是一个包含libjingle库的压缩文件,特别用于实现WebRTC(Web Real-Time Communication)中的NAT(Network Address Translation)穿透技术。...
标题 "带GIPS的libjingle source" 指的是一个包含GIPS(Global IP Sound)技术的libjingle源代码库。libjingle是Google开发的一个开源项目,主要用于实现跨平台的实时通信(RTC)功能,特别是网络音视频通话。GIPS是...
2. **信令交换**:libjingle支持STUN(Session Traversal Utilities for NAT)和TURN(Traversal Using Relays around NAT)服务器,帮助穿越NAT(网络地址转换)进行信令消息的交换。 3. **音视频编码与解码**:...
libjingle是一个开源项目,由Google开发,主要用于实现网络音视频通信。这个项目的核心是提供一个跨平台的库,使得开发者能够轻松地在他们的应用程序中集成VoIP(Voice over IP)和视频聊天功能。在本案例中,我们...
《深入理解libjingle_peerconnection:WebRTC的核心组件》 libjingle_peerconnection是Google开源项目WebRTC(Web Real-Time Communication)中的关键组件,它在实时通信领域扮演着至关重要的角色。WebRTC是一种...
它基于IETF的Session Initiation Protocol (SIP)和Interactive Connectivity Establishment (ICE)标准,以及Traversal Using Relays around NAT (TURN)和Session Traversal Utilities for NAT (STUN)技术,这些是P2P...
3. **多平台支持**:Libjingle不仅可以在Windows、Linux、macOS等桌面系统上运行,还可以在Android和iOS等移动平台上使用,这使得开发者可以构建跨平台的通信应用。 4. **网络连接管理**:Libjingle库负责网络连接...
**libjingle** 是一个开源项目,由Google开发并维护,主要用于实现跨平台的实时通信(RTC)功能,包括音频、视频通话以及数据共享。它最初是为Google Talk服务设计的,现在已经成为WebRTC(Web Real-Time ...
目前GOOGLECODE上的最新更新删除了libjingle.vcproj文件,采用scons脚本进行编译,增加了学习门槛,本次下载包增加了libjingle.vcproj文件并且已经通过了vs2005编译,方便大家学习使用。 Libjingle - Google Talk ...
Libjingle是Google提供的C++组件集,它为Google Talk的点对点通讯与语音呼叫功能提供交互操作性。组件包包括了Jingle和Jingle-Audio的google实现的源代码,它们是XMPP标准的推荐扩展,目前试验版可用。 我们发布此...
1. **libjingle**:libjingle提供了一套API,支持ICE(Interactive Connectivity Establishment)、STUN(Session Traversal Utilities for NAT)和TURN(Traversal Using Relays around NAT)等技术,这些技术帮助...
libjingle_peerconnection是Android WebRTC的核心库,提供了P2P(点对点)通信的基础框架,包括ICE(Interactive Connectivity Establishment)用于网络连接,STUN(Session Traversal Utilities for NAT)和TURN...
libjingle源码(含GIPS LITE),方便大家编译上传
Libjingle是一个方便实现P2P传输的开源库,由google公司开发,并与2005年12月15日发布第一个版本,可以粗略的看成是Jingle协议的C++实现库(peakflys注:只是和Jingle协议非常相似,并不完全兼容,区别以后介绍),...
最完全,最全面的Android框架列表libjingle_peerconnection_so
libjingle 中文 手册,很不错的哦,描述的很清楚,还有使用范例
### libjingle在Windows与Ubuntu-Linux上的编译方法 #### 概述 本文主要针对libjingle(版本包括但不限于0.6.6、0.6.9和最新的0.6.10)在Windows与Ubuntu Linux操作系统上的编译过程进行详细介绍,并分享了在编译...
源:https://developers.google.com/talk/libjingle/reference/ 语言:English 源于谷歌的libjingle的API。 个人整理成表格,方便开发时查找。 希望能帮助相关开发者。