虽然知道webrtc这个东东很久了,以前也一直是使用SVNcheckout源码过来阅读一下,一直没有实质性的进展,今天下载了vs工程版本的webrtc版本,本来想编译一下,通过跟踪代码来了解谷歌大神们的精髓,至于怎么下载代码和怎么下载带vs版本的源代码,这个大家自行谷歌,网上很大大婶们都已经下载好了放在了网盘上。
我使用的编译环境是visual studio 2012 update4版本,源码位置放在F:\work\webrtc 目录下,下面的所有错误都是基于这个环境而来的,其他的环境恕我不能解答,应该大体上差不多。第一次我选择了直接编译全部解决方案,编译下来直接能生成的没有几个项目,只剩6000多个编译错误,不过里面大体上很多都是重复的,在此过程中做了一个简单的记录,列举了一下比较主要的编译错误。这些错误凭借我个人之力肯定是不能完全解决,有些是参考网上大神的解决办法才得以解决,在这里就不一一注明引用了,还有一些编译错误自己没有遇到也就不一一列举了。在此过程中谷歌大神功不可没,一个194个项目全部编译通过。
错误一
error bash:../../third_party/libvpx/copy_obj.sh:/bin/bash: bad interpreter: No such file or directory microsoft.CppCommon.targets(151,5):error MSB6006: "cmd.exe" 已退出, 代码为126
解决办法:
执行 F:\work\webrtc\trunk\third_party\cygwin\setup_mount.bat,清理工程,再次编译即可。
错误二
error MSB3721:“call "F:\work\webrtc\trunk\third_party\yasm\..\..\third_party\cygwin\setup_env.bat" && set CYGWIN=nontsec&& set INTDIR=..\..\build\Debug\obj\yasm\&& set OUTDIR=..\..\build\Debug\&& set INPUTPATH=F:\work\webrtc\trunk\build\Debug\obj\global_intermediate\third_party\yasm\x86insn_nasm.gperf && bash -c "\"`cygpath -m \\\"${OUTDIR}\\\"`/genperf\" \"`cygpath -m \\\"${INPUTPATH}\\\"`\" \"`cygpath -m \\\"${INTDIR}\\\"`/third_party/yasm/x86insn_nasm.c\""”已退出,返回代码为 1。F:\work\webrtc\trunk\third_party\yasm\yasm.targets 34
解决办法:
把F:\work\webrtc\trunk\third_party\yasm\source\patched-yasm 下的x86insn_gas.gperf,x86insn_nasm.gperf 拷贝到F:\work\webrtc\trunk\build\Debug\obj\global_intermediate\third_party\yasm
错误三
bash: python: command not found
error MSB6006: “cmd.exe”已退出,代码为 127。 C:\ProgramFiles\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets 172
解决办法:
没有安装Python环境,下载Python2配置环境变量即可
Python下载地址:https://www.python.org/downloads/
下载Python2.7.8 即可。
错误四
error C2977: “std::tuple”: 模板参数太多 F:\work\webrtc\trunk\testing\gtest\include\gtest\gtest-printers.h 550
解决办法:
在需要报这种错误的项目中,加上预处理器命令:_VARIADIC_MAX=10
右键打开项目“属性”,在C/C++ --> “预处理器”--> “预处理定义”中增加即可。
错误五
error C1083: 无法打开包括文件:“d3dx9.h”: No such file or directory(video_render\windows\video_render_direct3d9.cc) F:\work\webrtc\trunk\webrtc\modules\video_render\windows\video_render_direct3d9.h 18
解决办法:
出现这种错误就是由于自己机器没有安装Direct SDK或者找不到DirectSDK路径所致,在微软官网下载Direct SDK安装即可
下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=6812