编译方法详见libjingle\README

2023-12-11 18:32

本文主要是介绍编译方法详见libjingle\README,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

http://hi.baidu.com/eve2006/item/df70f1e53e49ebadcf2d4fa3


编译方法详见libjingle\README

cmd:
 安装python
set PYTHON=c:\Python27
 (如果使用exe安装Scons则会安装到Python的目录里,
 使用scons-2.1.0报错:TypeError: object of type 'Dir' has no len():,
 使用scons-2.0.1进入编译,scons-2.0.1下载地址:http://www.ddxia.com/view/128928115336406.html,
 参考资料:http://www.aiseminar.cn/bbs/forum.php?mod=viewthread&tid=1858)
 #set SCONS_DIR=C:\Python27\Lib\site-packages\scons-2.1.0
set SCONS_DIR=C:\Python27\Lib\site-packages\scons-2.0.1
set PATH_TO_SWTOOLKIT=C:\1-MyWork\libjingle\depends\swtoolkit\swtoolkit
set PATH=%PYTHON%;%SCONS_DIR%;%PATH_TO_SWTOOLKIT%;%PATH%
 拷贝expat、gtest、srtp到libjingle-...\talk\third_party
cd C:\1-MyWork\libjingle-...\talk
%PATH_TO_SWTOOLKIT%\hammer.bat

如果出现如下错误
scons: Building targets ...
________Compiling build\dbg\obj\xmpp\mucroomhistorytask.obj
mucroomhistorytask.cc
c:\1-mywork\libjingle\libjingle-0.6.10\talk\xmpp\mucroomhistorytask.cc : error C
2220: warning treated as error - no 'object' file generated
c:\1-mywork\libjingle\libjingle-0.6.10\talk\xmpp\mucroomhistorytask.cc : warning
 C4819: The file contains a character that cannot be represented in the current
code page (936). Save the file in Unicode format to prevent data loss
scons: *** [build\dbg\obj\xmpp\mucroomhistorytask.obj] Error 2
scons: building terminated because of errors.

是由于注释当中的“,”引起,该字符是unicode编码,替换成ANSI编码即可

//   <iq type='result'
//       
//       id='user-setting-1'>
//     <meetinghistory xmlns='google:setting'>
//       <item name=’Hangout'
//             time=’2011-01-31T13:20:00Z’ />
//       <item name=’Planning’
//             time=’2011-02-11T 14:20:00Z />
//       <item name=’TGIF’
//             time=’2011-03-21T15:20:00Z’ />
//     </meetinghistory>
//   </iq>

cygwin:
#export PYTHON=/cygdrive/c/Python27
export SCONS_DIR=/cygdrive/c/1-MyWork/src/SCons/SCons-local-2.1.0/scons-local-2.1.0
export PATH_TO_SWTOOLKIT=/cygdrive/c/1-MyWork/src/swtoolkit/swtoolkit
#export PATH=$PYTHON:$SCONS_DIR:$PATH_TO_SWTOOLKIT:$PATH
export PATH=$SCONS_DIR:$PATH_TO_SWTOOLKIT:$PATH
$PATH_TO_SWTOOLKIT/hammer.sh

linux-ubuntu:
sudo apt-get install libgtk2.0-dev
sudo apt-get install libssl-dev
sudo apt-get install libasound2-dev
 scons使用scons-local-2.0.1,下载并解压到某个目录
export SCONS_DIR=/home/leery/libjingle/depends/SCons/scons-local-2.0.1/scons-local-2.0.1
 下载swtoolkit并解压到某个目录
export PATH_TO_SWTOOLKIT=/home/leery/libjingle/depends/swtoolkit/swtoolkit
export PATH=$SCONS_DIR:$PATH_TO_SWTOOLKIT:$PATH
 下载expat-2.0.1并放到talk/third_party/目录下
cd talk/third_party/expat-2.0.1/
./configure
 下载srtp并放到talk/third_party/目录下
cd ../srtp/
./configure
cd ../..
$PATH_TO_SWTOOLKIT/hammer.sh

如果出现如下错误
________Compiling build/dbg/obj/base/linux_unittest.o
base/linux_unittest.cc:32:32: error: testing/base/gunit.h: 没有那个文件或目录
base/linux_unittest.cc:38: error: ‘GetProcInfo’ has not been declared
base/linux_unittest.cc:38: error: ISO C++ forbids declaration of ‘TEST’ with no type
base/linux_unittest.cc: In function ‘int talk_base::TEST(talk_base::ProcCpuInfo, int)’:
base/linux_unittest.cc:40: error: ‘EXPECT_TRUE’ was not declared in this scope
base/linux_unittest.cc:45: error: ‘EXPECT_GT’ was not declared in this scope
base/linux_unittest.cc:51: error: ‘EXPECT_LE’ was not declared in this scope
base/linux_unittest.cc:56: error: ‘EXPECT_GE’ was not declared in this scope
base/linux_unittest.cc:78: error: ‘EXPECT_EQ’ was not declared in this scope
base/linux_unittest.cc:83: error: ‘EXPECT_FALSE’ was not declared in this scope
cc1plus: warnings being treated as errors
base/linux_unittest.cc:85: error: no return statement in function returning non-void
base/linux_unittest.cc: At global scope:
base/linux_unittest.cc:87: error: ‘ParseConfig’ has not been declared
base/linux_unittest.cc:87: error: ISO C++ forbids declaration of ‘TEST’ with no type
base/linux_unittest.cc: In function ‘int talk_base::TEST(talk_base::ConfigParser, int)’:
base/linux_unittest.cc:97: error: ‘EXPECT_EQ’ was not declared in this scope
base/linux_unittest.cc:106: error: no return statement in function returning non-void
base/linux_unittest.cc: At global scope:
base/linux_unittest.cc:108: error: expected constructor, destructor, or type conversion before ‘(’ token
base/linux_unittest.cc:114: error: expected constructor, destructor, or type conversion before ‘(’ token
scons: *** [build/dbg/obj/base/linux_unittest.o] Error 1
scons: building terminated because of errors.
打开talk/base/linux_unittest.cc,将
#include "testing/base/gunit.h"
改为
#include "talk/base/gunit.h"
即可


这篇关于编译方法详见libjingle\README的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/481680

相关文章

SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)

《SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)》本文介绍了如何在SpringBoot项目中使用Jasypt对application.yml文件中的敏感信息(如数... 目录SpringBoot使用Jasypt对YML文件配置内容进行加密(例:数据库密码加密)前言一、J

Spring Boot 中正确地在异步线程中使用 HttpServletRequest的方法

《SpringBoot中正确地在异步线程中使用HttpServletRequest的方法》文章讨论了在SpringBoot中如何在异步线程中正确使用HttpServletRequest的问题,... 目录前言一、问题的来源:为什么异步线程中无法访问 HttpServletRequest?1. 请求上下文与线

解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题

《解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题》在Spring开发中,@Autowired注解常用于实现依赖注入,它可以应用于类的属性、构造器或setter方法上,然... 目录1. 为什么 @Autowired 在属性上被警告?1.1 隐式依赖注入1.2 IDE 的警告:

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot

Android开发中gradle下载缓慢的问题级解决方法

《Android开发中gradle下载缓慢的问题级解决方法》本文介绍了解决Android开发中Gradle下载缓慢问题的几种方法,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、网络环境优化二、Gradle版本与配置优化三、其他优化措施针对android开发中Gradle下载缓慢的问

python 3.8 的anaconda下载方法

《python3.8的anaconda下载方法》本文详细介绍了如何下载和安装带有Python3.8的Anaconda发行版,包括Anaconda简介、下载步骤、安装指南以及验证安装结果,此外,还介... 目录python3.8 版本的 Anaconda 下载与安装指南一、Anaconda 简介二、下载 An

Java中将异步调用转为同步的五种实现方法

《Java中将异步调用转为同步的五种实现方法》本文介绍了将异步调用转为同步阻塞模式的五种方法:wait/notify、ReentrantLock+Condition、Future、CountDownL... 目录异步与同步的核心区别方法一:使用wait/notify + synchronized代码示例关键

Python使用Pandas对比两列数据取最大值的五种方法

《Python使用Pandas对比两列数据取最大值的五种方法》本文主要介绍使用Pandas对比两列数据取最大值的五种方法,包括使用max方法、apply方法结合lambda函数、函数、clip方法、w... 目录引言一、使用max方法二、使用apply方法结合lambda函数三、使用np.maximum函数

Qt 中集成mqtt协议的使用方法

《Qt中集成mqtt协议的使用方法》文章介绍了如何在工程中引入qmqtt库,并通过声明一个单例类来暴露订阅到的主题数据,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一,引入qmqtt 库二,使用一,引入qmqtt 库我是将整个头文件/源文件都添加到了工程中进行编译,这样 跨平台

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接