C++ 对OpenSSL的Asio依赖

C++ 对OpenSSL的Asio依赖,c++,ssl,boost,openssl,boost-asio,C++,Ssl,Boost,Openssl,Boost Asio,当使用Asio实现SSL握手代码时,项目不会生成并抛出错误 C:\Eclipse\Boost\Boost\u 1\u 62\u 0/Boost/asio/ssl/detail/openssl\u types.hpp:19:26:致命错误:openssl/conf.h:没有这样的文件或目录 那么,这是否意味着对于使用Asio的SSL,我们需要安装OpenSSL 这不是我想提出的问题。问题是,是否有其他替代方法可以在不要求客户端安装OpenSSL的情况下使用Asio SSL,或者换句话说,如何在单个

当使用Asio实现SSL握手代码时,项目不会生成并抛出错误

C:\Eclipse\Boost\Boost\u 1\u 62\u 0/Boost/asio/ssl/detail/openssl\u types.hpp:19:26:致命错误:openssl/conf.h:没有这样的文件或目录

那么,这是否意味着对于使用Asio的SSL,我们需要安装OpenSSL

这不是我想提出的问题。问题是,是否有其他替代方法可以在不要求客户端安装OpenSSL的情况下使用Asio SSL,或者换句话说,如何在单个可执行文件中静态地将OpenSSL与应用程序绑定

我可以在一个可执行文件中静态绑定OpenSSL和我的应用程序吗

对。您可以使用
无共享
选项构建openssl,它将只构建一个静态库:

然后把静态存档放在你的link命令行上,它将被静态链接,但是你分发给的人却没有


但是,要链接程序,必须使头文件和静态库可用于编译器/链接器。

boost::asio
使用
OpenSSL
进行
SSL
套接字:如果您有:

#include <boost/asio/ssl.hpp>
Windows,MinGW:

LIBS += -lssl
LIBS += -lcrypto
Linux、GCC:

LIBS += -lssl
LIBS += -lcrypto
LIBS += -ldl

注意:您可能有图书馆订单的链接问题。我建议在
boost
库之后加入
OpenSSL
库;顺便说一句,boost::asio需要
libboost\u系统

是的,您必须为boost安装OpenSSL。你是说你想在不安装OpenSSL的情况下使用OpenSSL+Boost(OpenSSL)?你需要提供更多信息,比如你是如何配置和构建Boost的,以及你是如何构建你的程序的。另请参见,和。正确,,我想制作一个可执行文件,允许客户端进行通信,而无需在客户端安装OpenSSL@BlacktempelYes Boost尚未更新以使用OpenSSL 1.1.0。这不是问题。我将使用较旧版本的OpenSSL 1.0.2,谢谢:)@jwfor windows还与crypt32.lib链接
LIBS += -lssl
LIBS += -lcrypto
LIBS += -ldl