gpt4 book ai didi

c++ - 编译 ssl 客户端的 boost 示例时出错

转载 作者:太空宇宙 更新时间:2023-11-04 13:35:41 25 4
gpt4 key购买 nike

我正在尝试从 http://www.boost.org/doc/libs/1_47_0/doc/html/boost_asio/example/ssl/client.cpp 编译 boost 示例.出于某种原因,我收到以下错误,但我不知道如何修复它们:

ssl_client.cpp:37:25: error: ‘boost::asio::ssl::verify_context’ has not been declared
ssl_client.cpp: In constructor ‘client::client(boost::asio::io_service&, boost::asio::ssl::context&, boost::asio::ip::basic_resolver<boost::asio::ip::tcp>::iterator)’:
ssl_client.cpp:27:13: error: ‘class boost::asio::ssl::stream<boost::asio::basic_stream_socket<boost::asio::ip::tcp> >’ has no member named ‘set_verify_mode’
ssl_client.cpp:27:29: error: ‘verify_peer’ is not a member of ‘boost::asio::ssl’
ssl_client.cpp:28:13: error: ‘class boost::asio::ssl::stream<boost::asio::basic_stream_socket<boost::asio::ip::tcp> >’ has no member named ‘set_verify_callback’
ssl_client.cpp:31:5: error: ‘async_connect’ is not a member of ‘boost::asio’
ssl_client.cpp: In member function ‘bool client::verify_certificate(bool, int&)’:
ssl_client.cpp:48:54: error: request for member ‘native_handle’ in ‘ctx’, which is of non-class type ‘int’
ssl_client.cpp: In function ‘int main(int, char**)’:
ssl_client.cpp:143:68: error: no matching function for call to ‘boost::asio::ssl::basic_context<boost::asio::ssl::context_service>::basic_context(boost::asio::ssl::context_base::method)’
ssl_client.cpp:143:68: note: candidates are:
/usr/include/boost/asio/ssl/basic_context.hpp:47:3: note: boost::asio::ssl::basic_context<Service>::basic_context(boost::asio::io_service&, boost::asio::ssl::context_base::method) [with Service = boost::asio::ssl::context_service]
/usr/include/boost/asio/ssl/basic_context.hpp:47:3: note: candidate expects 2 arguments, 1 provided
/usr/include/boost/asio/ssl/basic_context.hpp:35:7: note: boost::asio::ssl::basic_context<boost::asio::ssl::context_service>::basic_context(const boost::asio::ssl::basic_context<boost::asio::ssl::context_service>&)
/usr/include/boost/asio/ssl/basic_context.hpp:35:7: note: no known conversion for argument 1 from ‘boost::asio::ssl::context_base::method’ to ‘const boost::asio::ssl::basic_context<boost::asio::ssl::context_service>&’

我目前正在使用以下行进行编译:

g++ -I /usr/include/boost -Wall -o main ssl_client.cpp -lboost_system

我最近通过以下方式安装了 boost:

sudo apt-get install libboost-all-dev

我确定有一个简单的修复方法,有人知道我做错了什么吗?

============================================= =========================更新:

我现在尝试编译:

g++ -I /usr/include/boost -Wall -o main ssl_client.cpp -lboost_system -lcrypto -lssl -lpthread

但我仍然收到以下错误:

ssl_client.cpp:37:25: error: ‘boost::asio::ssl::verify_context’ has not been declared
ssl_client.cpp: In constructor ‘client::client(boost::asio::io_service&, boost::asio::ssl::context&, boost::asio::ip::basic_resolver<boost::asio::ip::tcp>::iterator)’:
ssl_client.cpp:27:13: error: ‘class boost::asio::ssl::stream<boost::asio::basic_stream_socket<boost::asio::ip::tcp> >’ has no member named ‘set_verify_mode’
ssl_client.cpp:27:29: error: ‘verify_peer’ is not a member of ‘boost::asio::ssl’
ssl_client.cpp:28:13: error: ‘class boost::asio::ssl::stream<boost::asio::basic_stream_socket<boost::asio::ip::tcp> >’ has no member named ‘set_verify_callback’
ssl_client.cpp:31:5: error: ‘async_connect’ is not a member of ‘boost::asio’
ssl_client.cpp: In member function ‘bool client::verify_certificate(bool, int&)’:
ssl_client.cpp:48:54: error: request for member ‘native_handle’ in ‘ctx’, which is of non-class type ‘int’
ssl_client.cpp: In function ‘int main(int, char**)’:
ssl_client.cpp:143:68: error: no matching function for call to ‘boost::asio::ssl::basic_context<boost::asio::ssl::context_service>::basic_context(boost::asio::ssl::context_base::method)’
ssl_client.cpp:143:68: note: candidates are:
/usr/include/boost/asio/ssl/basic_context.hpp:47:3: note: boost::asio::ssl::basic_context<Service>::basic_context(boost::asio::io_service&, boost::asio::ssl::context_base::method) [with Service = boost::asio::ssl::context_service]
/usr/include/boost/asio/ssl/basic_context.hpp:47:3: note: candidate expects 2 arguments, 1 provided
/usr/include/boost/asio/ssl/basic_context.hpp:35:7: note: boost::asio::ssl::basic_context<boost::asio::ssl::context_service>::basic_context(const boost::asio::ssl::basic_context<boost::asio::ssl::context_service>&)
/usr/include/boost/asio/ssl/basic_context.hpp:35:7: note: no known conversion for argument 1 from ‘boost::asio::ssl::context_base::method’ to ‘const boost::asio::ssl::basic_context<boost::asio::ssl::context_service>&’

最佳答案

修复了!这是因为 apt-get 给了我 boost 版本 1.46 而我需要版本 1.48。我做了以下修复它:

apt-get purge libboost-all-dev

apt-get install libboost1.48-all-dev

感谢:http://spencernusbaum.me/blog.php#106

关于c++ - 编译 ssl 客户端的 boost 示例时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29662993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com