- 浏览: 1515952 次
- 性别:
- 来自: 南京
-
文章分类
- 全部博客 (419)
- XMPP (19)
- Android (180)
- Java (59)
- Network (4)
- HTML5 (13)
- Eclipse (9)
- SCM (23)
- C/C++ (4)
- UML (4)
- Libjingle (15)
- Tools&Softwares (29)
- Linphone (5)
- Linux&UNIX (6)
- Windows (18)
- Google (10)
- MISC (3)
- SIP (6)
- SQLite (5)
- Security (4)
- Opensource (29)
- Online (2)
- 文章 (3)
- MemoryLeak (10)
- Decompile (5)
- Ruby (1)
- Image (1)
- Bat (4)
- TTS&ASR (28)
- Multimedia (1)
- iOS (20)
- Asciiflow - ASCII Flow Diagram Tool.htm (1)
- Networking (1)
- DLNA&UPnP (2)
- Chrome (2)
- CI (1)
- SmartHome (0)
- CloudComputing (1)
- NodeJS (3)
- MachineLearning (2)
最新评论
-
bzhao:
点赞123!
Windows的adb shell中使用vi不乱码方法及AdbPutty -
wahahachuang8:
我觉得这种东西自己开发太麻烦了,就别自己捣鼓了,找个第三方,方 ...
HTML5 WebSocket 技术介绍 -
obehavior:
view.setOnTouchListenerview是什么
[转]android 一直在最前面的浮动窗口效果 -
wutenghua:
[转]android 一直在最前面的浮动窗口效果 -
zee3.lin:
Sorry~~
When I build "call ...
Step by Step about How to Build libjingle 0.4
1. Download and Install Visual C++ 2010 Express
http://www.microsoft.com/express/Downloads/#2010-Visual-CPP
2. Download and install binary package for Expat
http://sourceforge.net/projects/expat/files/expat_win32/
Currently the latest version is 2.0.1, which is my selection.
After installed, remember the below two directories:
Header file diretory: C:\Program Files (x86)\Expat 2.0.1\Source\lib
Lib file directory: C:\Program Files (x86)\Expat 2.0.1\Bin
3. Download the libjingle 0.4 zip and unzip it
http://libjingle.googlecode.com/files/libjingle-0.4.0.zip
4. Open the solution with Visual C++ 2010 Express
Open Visual C++ 2010 Express, click File->Open->Project/Solution, select talk/libjincle.sln, it will prompt solution conversion, continue. Now you may see there are three projects in the solution.
5. Configure the Expat directories for the solution
Right click "libjingle" project in the Solution Explorer, select Properties, and config the VC++ Diretories as the below:
Include Directories: C:\Program Files (x86)\Expat 2.0.1\Source\lib
Library Directories: C:\Program Files (x86)\Expat 2.0.1\Bin
6. Build the libjingle project
Right click "libjingle" project in the Solution Explorer, select Build. The build will start.
After build finished, you will find build failure with the below error information:
gipslitemediaengine.h(33): fatal error C1083: Cannot open include file: 'talk/third_party/gips/Interface/GipsVoiceEngineLite.h': No such file or directory
1> gipslitemediaengine.cc
Don't worry. It is because on Windows the project depend on GIPS voice engine. Since we don't care the voice call now, so select all files on Source Files->session->phone, right click and select Exclude From Project. Build again. This time you will make build successfully.
And you may find the generated talk\Debug\libjingle.lib.
7. Build pcp project.
Configure the he Expat directories for this project as step 5. You will make build successfully. And you may find the generated talk\Debug\pcp.exe.
8. Test receiving file.
Run the below command:
Then send a file to this gmail account from Google Talk client with another account.
9. Test sending file.
Run the below command:
Then accept the file from Google Talk client with the recepient account.
At last,
You may try the attached binary pcp.exe for the test.
And in fact, for Expat XML Parser, you don't need install it, only expat.h/expat_external.h and libexpatMT.lib are needed, which I have attached.
http://www.microsoft.com/express/Downloads/#2010-Visual-CPP
2. Download and install binary package for Expat
http://sourceforge.net/projects/expat/files/expat_win32/
Currently the latest version is 2.0.1, which is my selection.
After installed, remember the below two directories:
Header file diretory: C:\Program Files (x86)\Expat 2.0.1\Source\lib
Lib file directory: C:\Program Files (x86)\Expat 2.0.1\Bin
3. Download the libjingle 0.4 zip and unzip it
http://libjingle.googlecode.com/files/libjingle-0.4.0.zip
4. Open the solution with Visual C++ 2010 Express
Open Visual C++ 2010 Express, click File->Open->Project/Solution, select talk/libjincle.sln, it will prompt solution conversion, continue. Now you may see there are three projects in the solution.

5. Configure the Expat directories for the solution
Right click "libjingle" project in the Solution Explorer, select Properties, and config the VC++ Diretories as the below:
Include Directories: C:\Program Files (x86)\Expat 2.0.1\Source\lib
Library Directories: C:\Program Files (x86)\Expat 2.0.1\Bin

6. Build the libjingle project
Right click "libjingle" project in the Solution Explorer, select Build. The build will start.
After build finished, you will find build failure with the below error information:
gipslitemediaengine.h(33): fatal error C1083: Cannot open include file: 'talk/third_party/gips/Interface/GipsVoiceEngineLite.h': No such file or directory
1> gipslitemediaengine.cc
Don't worry. It is because on Windows the project depend on GIPS voice engine. Since we don't care the voice call now, so select all files on Source Files->session->phone, right click and select Exclude From Project. Build again. This time you will make build successfully.
And you may find the generated talk\Debug\libjingle.lib.
7. Build pcp project.
Configure the he Expat directories for this project as step 5. You will make build successfully. And you may find the generated talk\Debug\pcp.exe.
8. Test receiving file.
Run the below command:
pcp
Then send a file to this gmail account from Google Talk client with another account.

9. Test sending file.
Run the below command:
pcp 01.jpg lisi.android@gmail.com
Then accept the file from Google Talk client with the recepient account.

At last,
You may try the attached binary pcp.exe for the test.
And in fact, for Expat XML Parser, you don't need install it, only expat.h/expat_external.h and libexpatMT.lib are needed, which I have attached.
- libjingle-0.4.0.zip (1.2 MB)
- 下载次数: 21
- expat-win32bin-2.0.1.rar (511.7 KB)
- 下载次数: 15
- pcp.rar (686.3 KB)
- 下载次数: 21
- expat_only_with_header_and_lib.rar (77.1 KB)
- 下载次数: 24
- libjingle_3rd_lib_linphonemediaengine_change.zip (574.6 KB)
- 下载次数: 38
评论
3 楼
zee3.lin
2015-04-27
Sorry~~
When I build "call" project ,I have some compiler error.
Could you please help to provide the solution for me reference?
below is my error message.
=====================================================================
callclient.obj : error LNK2019: unresolved external symbol "public: void __thiscall cricket::Call::Mute(bool)" (?Mute@Call@cricket@@QAEX_N@Z) referenced in function "public: void __thiscall CallClient::ParseLine(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?ParseLine@CallClient@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
callclient.obj : error LNK2019: unresolved external symbol "public: void __thiscall cricket::Call::Terminate(void)" (?Terminate@Call@cricket@@QAEXXZ) referenced in function "public: void __thiscall CallClient::ParseLine(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?ParseLine@CallClient@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
callclient.obj : error LNK2019: unresolved external symbol "public: void __thiscall cricket::Call::RejectSession(class cricket::Session *)" (?RejectSession@Call@cricket@@QAEXPAVSession@2@@Z) referenced in function "public: void __thiscall CallClient::ParseLine(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?ParseLine@CallClient@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
callclient.obj : error LNK2019: unresolved external symbol "public: void __thiscall cricket::PhoneSessionClient::SetFocus(class cricket::Call *)" (?SetFocus@PhoneSessionClient@cricket@@QAEXPAVCall@2@@Z) referenced in function "public: void __thiscall CallClient::ParseLine(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?ParseLine@CallClient@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
callclient.obj : error LNK2019: unresolved external symbol "public: void __thiscall cricket::Call::AcceptSession(class cricket::Session *)" (?AcceptSession@Call@cricket@@QAEXPAVSession@2@@Z) referenced in function "public: void __thiscall CallClient::ParseLine(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?ParseLine@CallClient@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
callclient.obj : error LNK2019: unresolved external symbol "public: class std::vector<class cricket::Session *,class std::allocator<class cricket::Session *> > const & __thiscall cricket::Call::sessions(void)" (?sessions@Call@cricket@@QAEABV?$vector@PAVSession@cricket@@V?$allocator@PAVSession@cricket@@@std@@@std@@XZ) referenced in function "public: void __thiscall CallClient::ParseLine(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?ParseLine@CallClient@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
callclient.obj : error LNK2019: unresolved external symbol "public: __thiscall cricket::PhoneSessionClient::PhoneSessionClient(class buzz::Jid const &,class cricket::SessionManager *)" (??0PhoneSessionClient@cricket@@QAE@ABVJid@buzz@@PAVSessionManager@1@@Z) referenced in function "private: void __thiscall CallClient::InitPhone(void)" (?InitPhone@CallClient@@AAEXXZ)
callclient.obj : error LNK2019: unresolved external symbol "public: class cricket::Session * __thiscall cricket::Call::InitiateSession(class buzz::Jid const &,class std::vector<class buzz::XmlElement *,class std::allocator<class buzz::XmlElement *> > *)" (?InitiateSession@Call@cricket@@QAEPAVSession@2@ABVJid@buzz@@PAV?$vector@PAVXmlElement@buzz@@V?$allocator@PAVXmlElement@buzz@@@std@@@std@@@Z) referenced in function "public: void __thiscall CallClient::MakeCallTo(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?MakeCallTo@CallClient@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
callclient.obj : error LNK2019: unresolved external symbol "public: class cricket::Call * __thiscall cricket::PhoneSessionClient::CreateCall(void)" (?CreateCall@PhoneSessionClient@cricket@@QAEPAVCall@2@XZ) referenced in function "public: void __thiscall CallClient::MakeCallTo(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?MakeCallTo@CallClient@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
===================================================================
My develop environment:
libjingle-0.4.0
vs 2010
Thank you very much.
When I build "call" project ,I have some compiler error.
Could you please help to provide the solution for me reference?
below is my error message.
=====================================================================
callclient.obj : error LNK2019: unresolved external symbol "public: void __thiscall cricket::Call::Mute(bool)" (?Mute@Call@cricket@@QAEX_N@Z) referenced in function "public: void __thiscall CallClient::ParseLine(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?ParseLine@CallClient@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
callclient.obj : error LNK2019: unresolved external symbol "public: void __thiscall cricket::Call::Terminate(void)" (?Terminate@Call@cricket@@QAEXXZ) referenced in function "public: void __thiscall CallClient::ParseLine(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?ParseLine@CallClient@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
callclient.obj : error LNK2019: unresolved external symbol "public: void __thiscall cricket::Call::RejectSession(class cricket::Session *)" (?RejectSession@Call@cricket@@QAEXPAVSession@2@@Z) referenced in function "public: void __thiscall CallClient::ParseLine(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?ParseLine@CallClient@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
callclient.obj : error LNK2019: unresolved external symbol "public: void __thiscall cricket::PhoneSessionClient::SetFocus(class cricket::Call *)" (?SetFocus@PhoneSessionClient@cricket@@QAEXPAVCall@2@@Z) referenced in function "public: void __thiscall CallClient::ParseLine(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?ParseLine@CallClient@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
callclient.obj : error LNK2019: unresolved external symbol "public: void __thiscall cricket::Call::AcceptSession(class cricket::Session *)" (?AcceptSession@Call@cricket@@QAEXPAVSession@2@@Z) referenced in function "public: void __thiscall CallClient::ParseLine(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?ParseLine@CallClient@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
callclient.obj : error LNK2019: unresolved external symbol "public: class std::vector<class cricket::Session *,class std::allocator<class cricket::Session *> > const & __thiscall cricket::Call::sessions(void)" (?sessions@Call@cricket@@QAEABV?$vector@PAVSession@cricket@@V?$allocator@PAVSession@cricket@@@std@@@std@@XZ) referenced in function "public: void __thiscall CallClient::ParseLine(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?ParseLine@CallClient@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
callclient.obj : error LNK2019: unresolved external symbol "public: __thiscall cricket::PhoneSessionClient::PhoneSessionClient(class buzz::Jid const &,class cricket::SessionManager *)" (??0PhoneSessionClient@cricket@@QAE@ABVJid@buzz@@PAVSessionManager@1@@Z) referenced in function "private: void __thiscall CallClient::InitPhone(void)" (?InitPhone@CallClient@@AAEXXZ)
callclient.obj : error LNK2019: unresolved external symbol "public: class cricket::Session * __thiscall cricket::Call::InitiateSession(class buzz::Jid const &,class std::vector<class buzz::XmlElement *,class std::allocator<class buzz::XmlElement *> > *)" (?InitiateSession@Call@cricket@@QAEPAVSession@2@ABVJid@buzz@@PAV?$vector@PAVXmlElement@buzz@@V?$allocator@PAVXmlElement@buzz@@@std@@@std@@@Z) referenced in function "public: void __thiscall CallClient::MakeCallTo(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?MakeCallTo@CallClient@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
callclient.obj : error LNK2019: unresolved external symbol "public: class cricket::Call * __thiscall cricket::PhoneSessionClient::CreateCall(void)" (?CreateCall@PhoneSessionClient@cricket@@QAEPAVCall@2@XZ) referenced in function "public: void __thiscall CallClient::MakeCallTo(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?MakeCallTo@CallClient@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
===================================================================
My develop environment:
libjingle-0.4.0
vs 2010
Thank you very much.
2 楼
laiyangdeli
2011-02-15
Build 'call' example:
1. 添加libexpatMT.lib的路径
2. 去掉gipsvoiceenginelite.lib, 改为mediastreamer2.lib, 并添加mediastreamer2.lib的路径
3. 添加ortp.lib, 并添加ortp.lib的路径. 注意在生成ortp.lib时候, 需要更改ortp.def, 添加下面全局变量的定义以便导出到lib中
payload_type_pcmu8000
...
payload_type_telephone_event
av_profile
1. 添加libexpatMT.lib的路径
2. 去掉gipsvoiceenginelite.lib, 改为mediastreamer2.lib, 并添加mediastreamer2.lib的路径
3. 添加ortp.lib, 并添加ortp.lib的路径. 注意在生成ortp.lib时候, 需要更改ortp.def, 添加下面全局变量的定义以便导出到lib中
payload_type_pcmu8000
...
payload_type_telephone_event
av_profile
1 楼
laiyangdeli
2011-02-15
talk\third_party创建expat目录, 在expat目录下, 创建include目录, 拷贝expat.h和expat_external.h; 创建lib目录, 拷贝libexpatMT.lib
加include路径到工程中
talk\third_party创建glib目录, 在glib目录下, 创建include目录, 拷贝glib的头文件以及glibconfig.h; 创建lib目录, 拷贝glib的lib
加include路径到工程中
talk\third_party创建ortp目录, 在ortp目录下, 创建include目录, 拷贝ortp的头文件; 创建lib目录, 拷贝ortp的lib
加include路径到工程中
talk\third_party创建mediastreamer2目录, 在mediastreamer2目录下, 创建include目录, 拷贝mediastreamer2的头文件; 创建lib目录, 拷贝mediastreamer2的lib
加include路径到工程中
在linphonemediaengine.cc
#include "talk/third_party/mediastreamer/mediastream.h"
改为
#include "mediastreamer2/mediastream.h"
注释掉
#include "talk/third_party/mediastreamer/msspeexdec.h"
注释掉
#include <netdb.h>
#include <unistd.h>
将speex_wb改为payload_type_speex_wb
将pcmu8000改为payload_type_pcmu8000
将telephone_event改为payload_type_telephone_event
注释掉
static void null_log_handler(const gchar *log_domain,
GLogLevelFlags log_level,
const gchar *message,
gpointer user_data) {
LOG(LS_INFO) << log_domain << " " << message;
}
g_log_set_handler("MediaStreamer", G_LOG_LEVEL_MASK, null_log_handler, this);
g_log_set_handler("oRTP", G_LOG_LEVEL_MASK, null_log_handler, this);
g_log_set_handler("oRTP-stats", G_LOG_LEVEL_MASK, null_log_handler, this);
ms_speex_codec_init();
audio_stream_ = audio_stream_start(&av_profile, 2000, "127.0.0.1", 3000, i->id, 250);
改为
audio_stream_ = audio_stream_start(&av_profile, 2000, "127.0.0.1", 3000, i->id, 250, true);
1> linphonemediaengine.cc
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\wspiapi.h(48): error C2894: templates cannot be declared to have 'C' linkage
注释
// extern "C" {
// }
int LinphoneMediaChannel::GetOutputLevel() {return 0;}
int LinphoneMediaEngine::SetAudioOptions(int options) {return 0;}
int LinphoneMediaEngine::SetSoundDevices(int wave_in_device, int wave_out_device) {return 0;}
float LinphoneMediaEngine::GetCurrentQuality() {return 0;}
int LinphoneMediaEngine::GetInputLevel() {return 0;}
linphonemediaengine.h
注释
// extern "C" {
// }
#include "talk/third_party/mediastreamer/mediastream.h"
改为
#include "mediastreamer2/mediastream.h"
加include路径到工程中
talk\third_party创建glib目录, 在glib目录下, 创建include目录, 拷贝glib的头文件以及glibconfig.h; 创建lib目录, 拷贝glib的lib
加include路径到工程中
talk\third_party创建ortp目录, 在ortp目录下, 创建include目录, 拷贝ortp的头文件; 创建lib目录, 拷贝ortp的lib
加include路径到工程中
talk\third_party创建mediastreamer2目录, 在mediastreamer2目录下, 创建include目录, 拷贝mediastreamer2的头文件; 创建lib目录, 拷贝mediastreamer2的lib
加include路径到工程中
在linphonemediaengine.cc
#include "talk/third_party/mediastreamer/mediastream.h"
改为
#include "mediastreamer2/mediastream.h"
注释掉
#include "talk/third_party/mediastreamer/msspeexdec.h"
注释掉
#include <netdb.h>
#include <unistd.h>
将speex_wb改为payload_type_speex_wb
将pcmu8000改为payload_type_pcmu8000
将telephone_event改为payload_type_telephone_event
注释掉
static void null_log_handler(const gchar *log_domain,
GLogLevelFlags log_level,
const gchar *message,
gpointer user_data) {
LOG(LS_INFO) << log_domain << " " << message;
}
g_log_set_handler("MediaStreamer", G_LOG_LEVEL_MASK, null_log_handler, this);
g_log_set_handler("oRTP", G_LOG_LEVEL_MASK, null_log_handler, this);
g_log_set_handler("oRTP-stats", G_LOG_LEVEL_MASK, null_log_handler, this);
ms_speex_codec_init();
audio_stream_ = audio_stream_start(&av_profile, 2000, "127.0.0.1", 3000, i->id, 250);
改为
audio_stream_ = audio_stream_start(&av_profile, 2000, "127.0.0.1", 3000, i->id, 250, true);
1> linphonemediaengine.cc
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\wspiapi.h(48): error C2894: templates cannot be declared to have 'C' linkage
注释
// extern "C" {
// }
int LinphoneMediaChannel::GetOutputLevel() {return 0;}
int LinphoneMediaEngine::SetAudioOptions(int options) {return 0;}
int LinphoneMediaEngine::SetSoundDevices(int wave_in_device, int wave_out_device) {return 0;}
float LinphoneMediaEngine::GetCurrentQuality() {return 0;}
int LinphoneMediaEngine::GetInputLevel() {return 0;}
linphonemediaengine.h
注释
// extern "C" {
// }
#include "talk/third_party/mediastreamer/mediastream.h"
改为
#include "mediastreamer2/mediastream.h"
发表评论
-
[Libjingle代码分析]随记
2011-02-28 15:24 3685call_main.cc的main()方法中创建CallCli ... -
[Libjingle代码分析]Libjingle的线程机制与Android平台的Handler机制相似
2011-02-27 19:55 2710不愧都是Google写的代码, Libjingle用到的Thr ... -
[Libjingle代码分析]对照Jingle的XMPP stanza理解Libjingle的几个关键数据结构
2011-02-27 13:34 36631. SessionManager管理多个Session: ... -
Libjingle代码分析之Thread篇
2011-02-23 14:59 0Libjingle的Thread机制竟然与Android的Ha ... -
Libjingle另一个很隐藏但却很致命的错误 - WSAECONNRESET (10054) Connection reset by peer.
2011-02-20 18:50 5609无论Libjingle 0.4.0还是0.5.2 (相比较0. ... -
Libjingle一个虽小但却很严重的bug - 误导人的SocketAddress构造函数参数名称
2011-02-19 23:47 3421在Libjingle+Linphone for Windows ... -
Build for Libjingle 0.5.2 + Mediastreamer2
2011-02-18 20:01 2810Mediastreamer support in 0.5.0 ... -
RTP Tools
2011-02-18 01:00 1948http://www.cs.columbia.edu/irt/ ... -
在Windows下编译最新版本的Libjingle
2011-02-17 14:09 12925Libjingle版本: 0.5.2 操作系统: Window ... -
Myjingle src code
2011-02-14 22:38 2740. -
终于搞定Windows下Libjingle+Linphone Voice Engine的语音通信
2011-02-14 20:49 4210Libjingle在Windows下的语音引擎默认的是GIPS ... -
[Libjingle 0.4]LibJingle编译指南
2011-02-14 17:24 2035LibJingle (for Ubuntu) 编译指南 ... -
[Libjingle 0.4]编译Libjingle 0.4+Linphone Voice Engine的总结之一
2011-02-14 16:59 3039在Windows下编译Libjingle 0.4+Linpho ... -
libjingle 0.4和0.5版本之间的区别
2011-02-12 15:19 2722我所知道的主要的区别是: 1. Build方式的区别. 0. ... -
决定花点时间研究下libjingle
2011-02-12 15:02 7124Project and Source Code Locatio ...
相关推荐
街道级行政区划shp矢量数据,wgs84坐标系,下载直接使用
街道级行政区划shp数据,wgs84坐标系,直接下载使用。
街道级行政区划shp矢量数据,wgs84坐标系,下载直接使用
轻量级密码算法LBlock的FPGA优化实现.docx
街道级行政区划shp矢量数据,wgs84坐标系,下载直接使用
Git 资料 progit-zh-v2.1.1.pdf
街道级行政区划shp数据,wgs84坐标系,直接下载使用。
篮球计分器FPGA附程序..doc
街道级行政区划shp数据,wgs84坐标系,直接下载使用。
内容概要:本文档全面介绍了Linux开发的基础知识、应用场景、环境搭建、常用命令、Shell脚本编程以及C/C++和Python开发等内容。首先阐述了Linux开发的重要性及其在服务器端开发、嵌入式开发和系统运维等领域的广泛应用。接着详细讲解了如何选择合适的Linux发行版并安装系统,配置开发环境,包括安装必要的开发工具和配置SSH服务。文档还深入讲解了Linux基础命令,如文件和目录操作、文件内容查看与编辑、进程管理和权限管理。此外,介绍了Shell脚本编程的基本语法,包括变量、条件语句、循环语句和函数定义。针对C/C++和Python开发,文档分别讲解了编译器安装、程序编写与编译、调试方法及使用虚拟环境等内容。最后,简要介绍了Linux内核开发的相关知识,包括下载编译内核、内核模块开发等,并推荐了相关学习资源。 适合人群:对Linux开发感兴趣的初学者及有一定经验的研发人员,尤其是希望深入掌握Linux开发技能的开发者。 使用场景及目标:①掌握Linux开发环境的搭建与配置;②熟悉Linux基础命令和Shell脚本编程;③学习C/C++和Python在Linux下的开发流程;④了解Linux内核开发的基本概念和技术。 阅读建议:此文档内容丰富,涵盖面广,建议读者根据自身需求选择性阅读,并结合实际操作进行练习。特别是对于初学者,应先掌握基础命令和开发环境的搭建,再逐步深入到编程语言和内核开发的学习。
街道级行政区划shp数据,wgs84坐标系,直接下载使用。
街道级行政区划shp数据,wgs84坐标系,直接下载使用。
街道级行政区划shp数据,wgs84坐标系,直接使用。
内容概要:本文档《word练习题.docx》是一份详细的Word操作练习指南,涵盖了从基础到高级的各种功能。文档分为三个主要部分:内容编辑、页面布局和高效文档。内容编辑部分包括文本格式化、段落设置、项目编号、制表位、边框与底纹等练习;页面布局部分涉及分节符、分栏、页眉页脚、水印等设置;高效文档部分则聚焦于样式管理、导航窗格、题注、书签、超级链接、脚注与尾注、交叉引用等功能。每个练习都有具体的操作步骤,帮助用户掌握Word的各种实用技巧。 适合人群:适用于Word初学者及希望提高Word技能的中级用户,尤其是需要频繁使用Word进行文档编辑和排版的办公人员。 使用场景及目标:①帮助用户熟悉Word的基本操作,如文本编辑、格式设置等;②提升用户的文档排版能力,学会设置复杂的页面布局;③提高工作效率,掌握高效文档管理技巧,如样式应用、题注和交叉引用等。 其他说明:此文档不仅提供了具体的练习题目,还附带了详细的步骤说明,用户可以根据指引逐步完成每个练习。此外,文档中的一些练习涉及到智能文档和Office智能客户端的应用,有助于用户了解Word在企业级应用中的潜力。建议用户按照章节顺序逐步学习,实践每一个练习,以达到最佳的学习效果。
街道级行政区划shp数据,wgs84坐标系,直接下载使用。
全球腐败感知数据(2000-2023)——3000行 33个指标 关于数据集 该数据集包含3000行和33列,涵盖了2000年至2023年的腐败感知指数(CPI)数据和各种治理指标。它包括国家排名、分数和其他指标,如公共部门腐败、司法腐败、贿赂指数、商业道德、民主指数、法治、政府效率、经济指标和人类发展指数。 这些数据可用于: 腐败趋势分析 腐败对GDP、人类发展指数和治理的影响 跨国比较 数据可视化和机器学习模型 该数据集对研究人员、数据分析师、政策制定者和对研究全球腐败趋势非常有用。
毕业设计(论文) 基于FPGA的数字频率计设计.doc
街道级行政区划shp数据,wgs84坐标系,直接使用。
NTI1NDU3NTAyODMwOTQxMzI0M18xNzQ0Nzk1MTk1OTgz_6.JPG