如何在Visual Studio 2010中使用cpp-netlib?

时间:2014-03-27 09:03:28

标签: c++ visual-studio-2010 http boost cpp-netlib

我试图在Visual Studio 2010中使用cpp-netlib。 我已经构建了cpp-netlib并将.lib文件添加到我的项目中,但我无法编译它们。

- 环境

  • Windows 7 x64
  • cpp-netlib 0.11.0
  • 提升1.55.0
  • Win32 OpenSSL v1.0.1f

我的代码在这里。

#include <boost/network/protocol/http/client.hpp>
#include <iostream>

int main(int argc, char *argv[]) {
    using namespace boost::network;

    if (argc != 2) {
        std::cout << "Usage: " << argv[0] << " [url]" << std::endl;
        return 1;
    }

    http::client client;
    http::client::request request(argv[1]);
    request << header("Connection", "close");
    http::client::response response = client.get(request);
    std::cout << body(response) << std::endl;

    return 0;
}

我添加了cpp-netlib库路径和cpp-netlib包含项目的路径。 还添加了Boost和openssl路径。 我将libs添加到项目中。

  • libboost_system-VC100-MT-GD-1_55.lib
  • libboost_date_time-VC100-MT-GD-1_55.lib
  • libboost_regex-VC100-MT-GD-1_55.lib
  • cppnetlib-客户connections.lib
  • cppnetlib-uri.lib

我认为错误来自与OpenSSL相关的东西。

Error   55  error LNK2019: unresolved external symbol - function _BIO_ctrl ...

实际上,我有日语,所以就像下面一样。

エラー 55  error LNK2019: 未解決の外部シンボル _BIO_ctrl が関数 "public: class boost::system::error_code const & __thiscall boost::asio::ssl::detail::engine::map_error_code(class boost::system::error_code &)const " (?map_error_code@engine@detail@ssl@asio@boost@@QBEABVerror_code@system@5@AAV675@@Z) で参照されました。    cppnetlib-client-connections.lib(client.obj)    
エラー 57  error LNK2019: 未解決の外部シンボル _BIO_ctrl_pending が関数 "private: enum boost::asio::ssl::detail::engine::want __thiscall boost::asio::ssl::detail::engine::perform(int (__thiscall boost::asio::ssl::detail::engine::*)(void *,unsigned int),void *,unsigned int,class boost::system::error_code &,unsigned int *)" (?perform@engine@detail@ssl@asio@boost@@AAE?AW4want@12345@P812345@AEHPAXI@Z0IAAVerror_code@system@5@PAI@Z) で参照されました。    cppnetlib-client-connections.lib(client.obj)
エラー 43  error LNK2019: 未解決の外部シンボル _BIO_free が関数 "public: __thiscall boost::asio::ssl::detail::engine::~engine(void)" (??1engine@detail@ssl@asio@boost@@QAE@XZ) で参照されました。    cppnetlib-client-connections.lib(client.obj)    
你可以告诉我我失踪的是什么吗? 我试图在项目中添加更多的库,但它仍然没有用。

2 个答案:

答案 0 :(得分:0)

我应该添加这两个库。

libeay32.lib ssleay32.lib

答案 1 :(得分:0)

我遇到了同样的问题,除了我使用WIN32版本的SSL而不是X64版本修复它。