使用openssl而不是boringssl时webrtc生成错误
我正在尝试使用openssl而不是boringssl构建webrtc的稳定分支57。以下是我的命令:使用openssl而不是boringssl时webrtc生成错误,openssl,webrtc,Openssl,Webrtc,我正在尝试使用openssl而不是boringssl构建webrtc的稳定分支57。以下是我的命令: gn gen out/Default --args="is_component_build=false rtc_build_ssl=false rtc_ssl_root=""C:\DevThirdParty\openssl-1.0.2k""" ninja -C out/Default 但是,生成中途失败,出现以下错误: [12/1633] CXX obj/webrtc/base/rtc_bas
gn gen out/Default --args="is_component_build=false rtc_build_ssl=false rtc_ssl_root=""C:\DevThirdParty\openssl-1.0.2k"""
ninja -C out/Default
但是,生成中途失败,出现以下错误:
[12/1633] CXX obj/webrtc/base/rtc_base/opensslstreamadapter.obj
FAILED: obj/webrtc/base/rtc_base/opensslstreamadapter.obj
ninja -t msvc -e environment.x64 -- "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64/cl.exe" /nologo /showIncludes /FC @obj/webrtc/base/rtc_base/opensslstreamadapter.obj.rsp /c ../../webrtc/base/opensslstreamadapter.cc /Foobj/webrtc/base/rtc_base/opensslstreamadapter.obj /Fd"obj/webrtc/base/rtc_base_cc.pdb"
c:\devthirdparty\openssl-1.0.2k\openssl\dtls1.h(139): error C2143: syntax error: missing ';' before '*'
c:\devthirdparty\openssl-1.0.2k\openssl\dtls1.h(139): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\devthirdparty\openssl-1.0.2k\openssl\dtls1.h(139): error C2238: unexpected token(s) preceding ';'
c:\devthirdparty\openssl-1.0.2k\openssl\dtls1.h(143): error C2143: syntax error: missing ';' before '*'
c:\devthirdparty\openssl-1.0.2k\openssl\dtls1.h(143): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\devthirdparty\openssl-1.0.2k\openssl\dtls1.h(143): error C2238: unexpected token(s) preceding ';'
c:\devthirdparty\openssl-1.0.2k\openssl\dtls1.h(254): error C3646: 'rbuf': unknown override specifier
c:\devthirdparty\openssl-1.0.2k\openssl\dtls1.h(254): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\devthirdparty\openssl-1.0.2k\openssl\dtls1.h(255): error C3646: 'rrec': unknown override specifier
c:\devthirdparty\openssl-1.0.2k\openssl\dtls1.h(255): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
[21/1633] CXX obj/webrtc/modules/modules_tests/screen_capturer_integration_test.obj
ninja: build stopped: subcommand failed.
以下是dtls1.h中的代码片段:
struct dtls1_retransmit_state {
EVP_CIPHER_CTX *enc_write_ctx; /* cryptographic state */
EVP_MD_CTX *write_hash; /* used for mac generation */
# ifndef OPENSSL_NO_COMP
COMP_CTX *compress; /* compression */ <=== LINE 139
# else
char *compress;
# endif
SSL_SESSION *session; <== LINE 143
unsigned short epoch;
};
struct dtls1\u重新传输\u状态{
EVP_CIPHER_CTX*加密_write_CTX;/*加密状态*/
EVP_MD_CTX*写入_散列;/*用于mac生成*/
#ifndef OPENSSL\u NO\u COMP
COMP_CTX*compress;/*compression*/发现问题出在WebRtc的opensslstreamadapter.cc文件中。包括以下内容:
#include <openssl/dtls1.h>
#include <openssl/ssl.h>
#包括
#包括
颠倒顺序后,编译将进行。结果发现问题出在WebRtc的opensslstreamadapter.cc文件中。包含的内容如下所示:
#include <openssl/dtls1.h>
#include <openssl/ssl.h>
#包括
#包括
颠倒顺序后,编译完成。
<代码>注释:C++不支持默认INT/COR> > OpenSSL必须用C编译器编译,而不是C++编译器。也可以在OpenSSL wiki上看到。以后,可以用C++编译器编译程序和应用程序。但是库必须用C编译器编译。使用no comp
?ifndef OPENSSL\u no\u comp
来自
。也许您可以尝试将其包括在dtls1.h
中,也就是说,添加#包括“opensslconf.h” >代码> dts1. h < /c> .>代码>注释:C++不支持默认INT/COM>。OpenSSL必须用C编译器编译,而不是C++编译器。也可以在OpenSSL wiki上看到。以后,可以用C++编译器编译程序和应用程序。但是库必须用C编译器来编译。ode>IFNDEFOpenSSL\u NO\u COMP
来自
。也许您可以尝试将其包含在dtls1.h
中?也就是说,添加#将“opensslconf.h”
包含到dtls1.h
中。