You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux EC2环境下编译Boost Beast的http_server_async_ssl.cpp遇阻求助

解决Boost Beast SSL示例编译找不到OpenSSL头文件的问题
  • 先确认EC2上OpenSSL头文件的位置,执行命令:
    find / -name openssl -type d 2>/dev/null
    通常预装的OpenSSL头文件会在/usr/include/openssl或者/usr/local/include/openssl目录下。

  • 编译SSL版本的示例时,除了Boost的头文件,还需要指定OpenSSL的头文件路径,并且链接OpenSSL的核心库(libssl和libcrypto)。直接用下面的命令替换原来的普通HTTP编译命令:

    c++ http_server_async_ssl.cpp -I /home/ec2-user/boost_1_86_0 -I /usr/include -o server_ssl -pthread -lssl -lcrypto
    

    如果头文件不在/usr/include,把上面的-I /usr/include换成你找到的实际路径即可。

  • 更简便的方式是用pkg-config自动获取编译和链接参数(如果EC2上没装pkg-config,先执行sudo yum install pkgconfig或者sudo apt install pkg-config安装),然后用这个命令:

    c++ http_server_async_ssl.cpp -I /home/ec2-user/boost_1_86_0 $(pkg-config --cflags openssl) -o server_ssl -pthread $(pkg-config --libs openssl)
    

    这个命令会自动读取OpenSSL的头文件路径和需要链接的库,避免手动找路径的麻烦。

  • 编译完成后,运行SSL服务器前,你还需要准备SSL证书和密钥文件(示例代码里默认找server.pem),可以用OpenSSL生成:

    openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
    cat key.pem cert.pem > server.pem
    

内容的提问来源于stack exchange,提问作者Caleb Taylor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 00:04:51