boost::asio::ssl::context 施工期间崩溃
boost::asio::ssl::context crash during construction
我不明白为什么以下指令会崩溃:
boost::asio::ssl::context ctx(boost::asio::ssl::context::tlsv12);
我收到以下错误:进程返回 -1073741819 (0xC0000005)
关于异常和据我所知,boost 文档没有提到 boost 和 openssl 版本之间的不兼容问题。
我的环境:
来自 cygwin 的 gcc:C:\cygwin64\x86_64-w64-mingw32-g++.exe
链接器选项:-lws2_32 -lcrypto -lssl
使用 boost 1.78(来自网站的 dl)和 cygwin 的 openssl 1.1.1m 包
这是最简单的例子:
#include <iostream>
#include <boost/asio/ssl/context.hpp>
int main()
{
std::cout << "before" << std::endl;
try {
boost::asio::ssl::context ctx(boost::asio::ssl::context::tlsv12);
} catch (...) {
std::cout << "catch" << std::endl;
}
std::cout << "after" << std::endl;
return 0;
}
输出:
before
我安装的 openssl cygwin 包不是一个稳定的包,所以 include 和 lib 文件丢失,我使用的是错误的(与 x86_64-w64-mingw32-g++ 编译器不兼容)。我已经安装了另一个稳定版本,现在可以使用所需的文件了。
我不明白为什么以下指令会崩溃:
boost::asio::ssl::context ctx(boost::asio::ssl::context::tlsv12);
我收到以下错误:进程返回 -1073741819 (0xC0000005)
关于异常和据我所知,boost 文档没有提到 boost 和 openssl 版本之间的不兼容问题。
我的环境:
来自 cygwin 的 gcc:C:\cygwin64\x86_64-w64-mingw32-g++.exe
链接器选项:-lws2_32 -lcrypto -lssl
使用 boost 1.78(来自网站的 dl)和 cygwin 的 openssl 1.1.1m 包
这是最简单的例子:
#include <iostream>
#include <boost/asio/ssl/context.hpp>
int main()
{
std::cout << "before" << std::endl;
try {
boost::asio::ssl::context ctx(boost::asio::ssl::context::tlsv12);
} catch (...) {
std::cout << "catch" << std::endl;
}
std::cout << "after" << std::endl;
return 0;
}
输出:
before
我安装的 openssl cygwin 包不是一个稳定的包,所以 include 和 lib 文件丢失,我使用的是错误的(与 x86_64-w64-mingw32-g++ 编译器不兼容)。我已经安装了另一个稳定版本,现在可以使用所需的文件了。