Visual Studio 2017自建WebRTC中peerconnection_client程序编译报错的解决方法

近期TSINGSEE青犀视频研发团队在尝试Visual Studio 2017自建WebRTC中peerconnection_client程序,但难免编译过程中出现的各种错误,这些错误都是我们开发过程中的宝贵经验。

本文我们和大家分享一下在编译过程中出现的几个错误。

编译错误

编译过程中,程序出现了以下提示:
代码:C1189,说明:#error: “Missing byte order function for this arch”;
代码:C1083,说明:无法打开包括文件: “unistd.h”: No such file or directory。

Visual Studio 2017自建WebRTC中peerconnection_client程序编译报错的解决方法

这些报错信息的出现导致程序的编译无法进行下去。

分析问题

1、首先我们来讲代码:C1189的报错,意思是此架构缺少字节顺序函数。由于我们使用的是WEBRTC编译程序,导致找不到宏定义;默认的宏定义是没有WEBRTC_POSIX的,导致会进入#error错误信息

Visual Studio 2017自建WebRTC中peerconnection_client程序编译报错的解决方法

因此这里我们解决该问题可以使用的windows开发,添加WEBRTC_WIN宏定义,如下图:

Visual Studio 2017自建WebRTC中peerconnection_client程序编译报错的解决方法

2、下面讲一下代码:C1083的报错,意思是没有这样的文件或目录。由于我们使用Visual Studio 2017开发,编译的是来自Linux平台的源文件,所以产生报错信息,点击进去查看源代码,如下图所示。

Visual Studio 2017自建WebRTC中peerconnection_client程序编译报错的解决方法

该报错定义是没找到WIN32宏定义,所以解决办法,右击项目工程属性 -> C/C++ -> 预处理器;添加WIN32宏定义即可。

Visual Studio 2017自建WebRTC中peerconnection_client程序编译报错的解决方法

注意:因为在编译的过程中,出现的很多宏未定义,所以最终的宏定义。如下图

Visual Studio 2017自建WebRTC中peerconnection_client程序编译报错的解决方法