1

このコードをコンパイルしようとしています ( cpp-netlibドキュメントから取得):

#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;
}

ただし、次のエラーで失敗します。

Error   C2446   ':': no conversion from 'boost::asio::error::netdb_errors' to 'const std::error_code'

私は VS2015、cpp-netlib 0.12.0 (最終版)、Boost 1.55.0 を使用していますが、何が原因なのかわかりません。それを修正する方法はありますか?このライブラリを機能させるために数日間頭を悩ませてきましたが、残念ながら常に新しいエラーが発生するようです。

4

2 に答える 2

0

OS X 10.11.4でclang 7.3.0、cppnetlib 0.12.0、asio 1.10.6、boost 10.60.0を使用していますが、動作します。

を使用して提供された例をコンパイルしましたclang++ -lcppnetlib-uri -lcppnetlib-client-connections -lssl -lcrypto -I/opt/local/include -L/opt/local/lib -std=c++11 test.cpp -o test

HTTPS サポートを有効にする場合は、#define BOOST_NETWORK_ENABLE_HTTPS含める前に必ず追加してください。boost/network/protocol/http/client.hpp

于 2016-05-09T20:11:26.807 に答える
0

boost::asio ではboost::system::error_code、コールバック/呼び出しでエラー コードを使用する場合はいつでも使用する必要がありますstd::error_code

バックグラウンドで netlib が何をしているのかはわかりませんが、これは、参照コードに誤りがあるか、単に古いバージョンのコードが間違ったシンボルを使用している証拠である可能性があります。

于 2016-05-09T18:22:59.757 に答える