WebRTC学习之二:编译(Win10+VS2015)
来源:互联网 发布:发热丝绕线数据 编辑:程序博客网 时间:2024/05/17 09:23
一.准备
1.操作系统
Win7 64位及以上,必须是64位的。我用的Win10,64位。
2.VS版本
Visual Studio 2015 Update 3及以上。我用的Visual Studio 2015 Update 3。
http://download.microsoft.com/download/7/c/f/7cf151c3-b735-4e35-a1bb-9a48224f4a95/vs2015.3.ent_chs.iso
3.Python
编译过程中需要,我用的2.7.9版本,需添加到Path环境变量。
https://www.python.org/ftp/python/2.7.9/python-2.7.9.amd64.msi
4.Microsoft DirectX SDK (June 2010)
如果安装出错,参考:安装DirectX SDK时出现Error Code:s1023 的解决方案
以上环境是2016年3月11号以后的WebRTC版本必须的。
二.下载
WebRTC需要翻墙才能下载,下载方法略,这里分享一个2016年6月22号的版本,只含源码,比较小。
http://pan.baidu.com/s/1bpHvsZX
我分享的这个版本已经带all.sln了,并且移除了test、unittest和demo工程。打开all.sln直接编译就行。
如果只是需要WebRTC静态库,看到这里就可以了。
三.编译
毕竟test、unittest和demo工程是学习WebRTC最好的资料,如果想编译它们,得自己重新生成all.sln。
1.VS工程文件生成
将源码解压,我解压到了D:\webrtc20160622
输入上图指令就能在源码目录中生成all.sln,包含所有的工程。
注意:
a)要用 set GYP_GENERATORS=msvs, 不要用set GYP_GENERATORS=ninja,msvs-ninja,否则会报大量的编译错误。
b)除了我分享的版本,网上下载的各种未生成工程文件的源码也可以这个方法进行工程文件生成。
c)在编译test、unittest和demo工程时,会遇到一些问题,如下所示。
2.一些错误处理
问题1:error C2220: 警告被视为错误 - 没有生成“object”文件
原因:该文件的代码页为英文,而我们系统中的代码页为中文。
解决方法:
双击该错误打开对应文件,选择“文件”菜单中的“高级保存选项”菜单项,如下图所示。
然后将编码方式选择为中文,如下图所示。
问题2:LINK : fatal error LNK1104: 无法打开文件“D:\webrtc_test\build\Debug\lib\gtest_prod.lib”
原因:gtest_prod这个工程没有导出类,所以其就不生成lib。
解决方法:
右键该工程,添加一个类,类名随便取,比如说Test123,然后将该类头文件改成如下所示。
Test123.h
Test123.cpp
需要注意的是,需要将项目类型选择为静态库,如下图所示。
如果其他项目还提示缺少gtest_prod.lib,将其拷贝到指定位置。
问题3:LINK : fatal error LNK1181: 无法打开输入文件“D:\webrtc_test\build\Release\lib\system_wrappers_default.lib”
原因:同问题2
解决方法:同问题2,这里类名为Test456
问题4:error MSB3721: 命令“call python "..\..\tools\isolate_driver.py" "check" "--isolated" "..\..\build\Release\peerconnection_unittests.isolated" "--isolate" "peerconnection_unittests.isolate" "--path-variable" "DEPTH" "..\.." "--path-variable" "PRODUCT_DIR" "..\..\build\Release\ " "--config-variable" "CONFIGURATION_NAME=Release" "--config-variable" "OS=win" "--config-variable" "asan=0" "--config-variable" "branding=Chromium" "--config-variable" "chromeos=0" "--config-variable" "component=static_library" "--config-variable" "disable_nacl=0" "--config-variable" "enable_pepper_cdms=1" "--config-variable" "enable_plugins=1" "--config-variable" "fastbuild=0" "--config-variable" "icu_use_data_file_flag=1" "--config-variable" "internal_gles2_conform_tests=0" "--config-variable" "kasko=0" "--config-variable" "lsan=0" "--config-variable" "msan=0" "--config-variable" "target_arch=ia32" "--config-variable" "tsan=0" "--config-variable" "use_custom_libcxx=0" "--config-variable" "use_instrumented_libraries=0" "--config-variable" "use_prebuilt_instrumented_libraries=0" "--config-variable" "use_ozone=0" "--config-variable" "use_x11=0" "--config-variable" "v8_use_external_startup_data=1" "--config-variable" "msvs_version=2015"”已退出,返回代码为 1。
原因:未知
解决方法:双击该错误,定位到所在文件的所在行,将该行删除。如下图所示,删除光标所在的行。
参考链接:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=26000296&id=5746543
参考链接:https://chromium.googlesource.com/chromium/src/+/master/docs/windows_build_instructions.md
- WebRTC学习之二:编译(Win10+VS2015)
- WebRTC学习之二:编译(Win10+VS2015)
- Caffe编译(Win10+Vs2015+Cuda8.0)
- Win10+VS2015编译libcurl
- win10 vs2015 libs3 编译
- win10 vs2015 opencv编译
- win10 vs2015 wxWidgets编译
- win10 vs2015 编译 wxSqlite3
- win10 vs2015 freetype2编译
- VLfeat win10 vs2015 编译
- expat win10+vs2015编译
- win10+vs2015 meshlab编译
- OGRE win10 Vs2015编译
- win10+VS2015+pycaffe编译
- webrtc成功编译(windows vs2015)
- win10 vs2015 php源码编译
- WIN10 QWT6.1.3+VS2015编译
- proj.4编译 win10 vs2015
- Python checkio "Long Non Repeat"解决方案
- ffmpeg avfilter map解释
- 近七成金融平台下线“风险保证金”,“去刚兑”后未来怎么投
- JDBC调用存储过程
- Java中的4种安全沙箱机制之内置于Java虚拟机(及语言)的安全特性
- WebRTC学习之二:编译(Win10+VS2015)
- BZOJ3160:万径人踪灭 (FFT+Manacher)
- BitBlt()用法
- linux检测内存泄漏工具valgrind
- 【剧透】2017云栖大会·北京峰会——企业云上业务优化专场
- Yii批量插入的方法
- Dom的方式分割和拼接xml文件
- Java类加载一:Class.forName()和ClassLoader.getSystemClassLoader().loadClass()区别
- CSS 强制不换行,多出的文字显示省略号