0
私はweingsの安定したブランチ57をboringsslの代わりにopensslを使って構築しようとしています。ここに私のコマンドです:boringsslの代わりにopensslを使用したときにwebrtcでエラーを作成する
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;
};
は別がありますステップ私は行方不明ですか?よろしく。
* '注意:C++はdefault-intをサポートしていません。 '* - OpenSSLはC++コンパイラではなくCコンパイラでコンパイルする必要があります。 OpenSSL wikiの[コンパイルとインストール](https://wiki.openssl.org/index.php/Compilation_and_Installation)も参照してください。後で、C++コンパイラでプログラムやアプリケーションをコンパイルできます。しかし、ライブラリはCコンパイラで構築する必要があります。 – jww
'no-comp'でOpenSSLを設定しましたか? 'ifndef OPENSSL_NO_COMP'は' 'から来ます。たぶんあなたは 'dtls1.h'にそれを含めることができますか?つまり、 '#include" opensslconf.h "'を 'dtls1.h'に追加します。 –
jww