由于 X509 重新定义问题,编译 WebRTC 和 boost::uuid 时出现问题。我应该在哪里创建问题?
Problem compiling WebRTC and boost::uuid due to X509 redefinition problem. Where should I create issue?
我正在试验 WebRTC 并且偶然发现了恼人的问题。同时使用两者:
BoringSSL(对于 WebRTC 是 third_party
)和 boost::uuid 由于 X509 重定义问题,我无法编译我的解决方案。
问题:
BoringSSL 自己定义 X509 所以当我 link wincrypt.h 通过 boost::uuid 自己定义它时,出现重定义问题。每次您尝试使用 wincrypt.h
或依赖它的任何其他 third_party
以及 WebRTC.
时都会出现此问题
解决方案:
我可能会使用 boost::uuid
以外的东西
我可以在 BoringSSL 文件中添加 base.h
、#undef
预处理器宏:
#ifdef CRYPT
#undef X509_NAME
#undef X509_CERT_PAIR
#undef X509_EXTENSIONS
#endif
您可以在项目的 CMake 中使用这种方式
add_definitions(-DCRYPT)
问题将立即得到解决。标志名称无关紧要,只是示例。
我的第二个解决方案更可取,我希望它能包含在 BoringSSL for WebRTC 的更多版本中。在 BoringSSL 网站上有一条信息指出:
Programs ship their own copies of BoringSSL when they use it and we update everything as needed when deciding to make API changes. This allows us to mostly avoid compromises in the name of compatibility. It works for us, but it may not work for you.
我的问题:
这句话是否意味着 WebRTC 以某种方式发布了独特版本的 BoringSSL?
如果是这样,我应该将我的问题指向哪里?我想做出贡献,以便将来可以帮助其他人,但我不确定 WebRTC 回购在哪里?到 BoringSSL?
提前感谢您帮我解决问题。
Boost.Asio 依赖于 OpenSSL 库。 OpenSSL 和 BoringSSL 不兼容也就不足为奇了。使用您建议的 #ifdef CRYPT
石膏实际上可能会掩盖更严重的不相容问题。我认为正确的方法是使用 OpenSSL 编译 WebRTC,或者对所有项目使用 BoringSSL,就像 nghttp2 did it.
我正在试验 WebRTC 并且偶然发现了恼人的问题。同时使用两者:
BoringSSL(对于 WebRTC 是 third_party
)和 boost::uuid 由于 X509 重定义问题,我无法编译我的解决方案。
问题:
BoringSSL 自己定义 X509 所以当我 link wincrypt.h 通过 boost::uuid 自己定义它时,出现重定义问题。每次您尝试使用 wincrypt.h
或依赖它的任何其他 third_party
以及 WebRTC.
解决方案:
我可能会使用 boost::uuid
以外的东西
我可以在 BoringSSL 文件中添加
base.h
、#undef
预处理器宏:
#ifdef CRYPT
#undef X509_NAME
#undef X509_CERT_PAIR
#undef X509_EXTENSIONS
#endif
您可以在项目的 CMake 中使用这种方式
add_definitions(-DCRYPT)
问题将立即得到解决。标志名称无关紧要,只是示例。
我的第二个解决方案更可取,我希望它能包含在 BoringSSL for WebRTC 的更多版本中。在 BoringSSL 网站上有一条信息指出:
Programs ship their own copies of BoringSSL when they use it and we update everything as needed when deciding to make API changes. This allows us to mostly avoid compromises in the name of compatibility. It works for us, but it may not work for you.
我的问题:
这句话是否意味着 WebRTC 以某种方式发布了独特版本的 BoringSSL?
如果是这样,我应该将我的问题指向哪里?我想做出贡献,以便将来可以帮助其他人,但我不确定 WebRTC 回购在哪里?到 BoringSSL?
提前感谢您帮我解决问题。
Boost.Asio 依赖于 OpenSSL 库。 OpenSSL 和 BoringSSL 不兼容也就不足为奇了。使用您建议的 #ifdef CRYPT
石膏实际上可能会掩盖更严重的不相容问题。我认为正确的方法是使用 OpenSSL 编译 WebRTC,或者对所有项目使用 BoringSSL,就像 nghttp2 did it.