webrtc 编译

来源:互联网 发布:labtool48uxp软件下载 编辑:程序博客网 时间:2024/05/28 16:22

下面很多程序的安装之后都会要加入到环境变量中,先解释 一下什么叫环境变量。

当我们在cmd下输入命令的时候,例如cp,dir等命令,可以直接运行,而想执行一个打开chrome浏览器的chrome.exe命令时候,就会提示chrome.exe找不到等类似的错误,那是因为chrome.exe并没有被加入到环境变量中。你必须形如这样的方式"C:\Program Files\Google\Chrome\Application\chrome.exe",在cmd下才可以将chrome浏览器打开。

对于cmd下,会解析用户的输入,对于用户输入的命令,它会向系统变量和环境变量中的一个path参数下去寻找,有没有相应的可执行文件,于是如果你想执行svn命令,而svn.exe所在目录却并没有加入到环境变量的path路径中,那么cmd下就会报“命令不存在”的错误。加入命令到环境变量有这样的一个好处,对于一个命令不需要输入它的完整路径,而仅仅需要输入命令的名字就可以了,这可以给我们在cmd下执行命令提供相当大的方便。于是乎当下面安装的某一个程序提示需要加入到环境变量的时候,实际上就是说你在cmd下可以直接输入命令的名字就可以执行目录下的命令。


1,下载并安装msysgit和Tortoisegit

2, 下载并安装Python,当我版本为3.3的时候执行py脚本出现了错误,后来我又将版本改为2.7的那个版本才可以。将python可执行文件的目录加入到环境变量。

3,需要SVN命令,但是由于我下载的是TortoiseSVN,它有图形界面,但是我在它的安装目录下却没有找到SVN命令,这样在执行后面的gclinet脚本的时候会提示svn命令找不到。于是又重新下载了一个可以在cmd下使用svn命令的软件,我安装的是Setup-Subversion-1.6.16.msi。别忘了将它的执行命令添加到环境变量中。

4,下载depot_tools工具,里面有一个gclient的脚本,后面的很多命令都涉及到这个脚本。因此需要将其加入到环境变量中。

可以通过svn co http://src.chromium.org/svn/trunk/tools/depot_tools这样的命令下载它。它会在cmd当前目录下创建一个depot_tools的文件夹。

5,执行git安装目录下(我的在C:\Program Files\Git )的GitBash快捷方式,就会打开一个类似于cmd的shell窗口,在这里可以切换到相应的目录下,新建一个空白目录,准备下载webrtc的源码。

6,切换到空白目录下,执行gclient config http://libjingle.googlecode.com/svn/trunk

7,等待一会儿输入gclient sync --force(下载源代码中)

8,执行gclient runhooks --force  将源代码转换成visual studio工程中。


访问http://www.webrtc.org/reference/getting-started/prerequisite-sw获取准备过程的详细内容

这个里面有两个重要的东西,一个是7.1的sdk,还有一个directxSdk,文件都不小。需要很长时间下载,当转换成工程之后还需要将它们的bin,include,lib文件夹加入到vs的工具->选项->项目和解决方案->vc++一栏的包含文件中。

访问http://www.webrtc.org/reference/getting-started获取安装过程的详细内容


由于是第一次安装webrtc,上面的步骤时有执行不对的。我遇到就是下载jingle执行gclient sync --force出错了,然后下面的需要将其转换成vs工程的时候就会失败,怎么弄都不行。后来我直接愤怒了,删除掉整个文件夹,新建一个文件夹,重新config,sync,然后runhooks才可以。

我认为必须安装的几个是:

depot_tools:执行gclient命令的时候需要,它里面有gclient脚本。加入到环境变量。

Subversion:执行svn命令的时候需要,加入到环境变量。

msysgit:gclient的命令的执行放在GitBash的shell窗口中执行。如果执行在cmd窗口中执行gclient命令,总会提示安装git,安装svn,不知道是什么原因,虽然我已经装过了。

不明白为什么需要安装TortoiseSVN和TortoiseGit,这两个感觉用途不大。


我最想安装之后就可以看到结果,于是决定立刻编译执行各种网站都会提到的peerconnection的工程。

1,编译libjingle_peerconnection_unittest工程,出现libjingle库连接失败

2,跟踪到libjingle库的生成中,libjingle.lib生成失败,发现是缺少secur32.lib和另外两个库链接失败。

3,查看libjingle库的工程的库包含目录,发现已经包含了目录,库也包含了。后来经过仔细查验,发现crypt32.lib;iphlpapi.lib;secur32.lib这三个库是以分号分隔的,而应该以空格分隔。将分号删掉,libjingle库生成成功。

4,继续编译libjingle_media库,同样有这样的问题,删除掉分号,OK。

针对我的电脑可以在E:\webrtc\trunk\trunk\build\Debug目录下找到peerconnection_client.exe文件,peerconnection_server.exe文件,运行服务器端和客户端,可以正常连接。还没有测试通话。