【问题标题】:http client in proxygen?proxygen中的http客户端?
【发布时间】:2016-01-27 10:58:33
【问题描述】:

嗨,我正在使用 facebook 的 proxygen 创建一个简单的 hhtpclient 。我正在尝试运行他们的默认 httpclient 示例。我正在使用以下命令来构建它:

 g++ -std=c++11 -o my_echo   CurlClient.o CurlClientMain.o -lproxygenhttpserver -lfolly -lglog -lgflags -pthread

但我收到以下错误:

CurlClient.o: In function `CurlService::CurlClient::connectSuccess(proxygen::HTTPUpstreamSession*)':
/home/kshitij/proxygen/httpclient/samples/curl/CurlClient.cpp:69: undefined reference to `proxygen::HTTPUpstreamSession::newTransaction(proxygen::HTTPTransactionHandler*)'
CurlClientMain.o: In function `main':
/home/kshitij/proxygen/httpclient/samples/curl/CurlClientMain.cpp:91: undefined reference to `proxygen::HTTPConnector::HTTPConnector(proxygen::HTTPConnector::Callback*, folly::HHWheelTimer*)'
/home/kshitij/proxygen/httpclient/samples/curl/CurlClientMain.cpp:102: undefined reference to `proxygen::HTTPConnector::connect(folly::EventBase*, folly::SocketAddress const&, std::chrono::duration<long, std::ratio<1l, 1000l> >, std::map<folly::AsyncSocket::OptionKey, int, std::less<folly::AsyncSocket::OptionKey>, std::allocator<std::pair<folly::AsyncSocket::OptionKey const, int> > > const&, folly::SocketAddress const&)'
/home/kshitij/proxygen/httpclient/samples/curl/CurlClientMain.cpp:91: undefined reference to `proxygen::HTTPConnector::~HTTPConnector()'
/home/kshitij/proxygen/httpclient/samples/curl/CurlClientMain.cpp:99: undefined reference to `proxygen::HTTPConnector::connectSSL(folly::EventBase*, folly::SocketAddress const&, std::shared_ptr<folly::SSLContext> const&, ssl_session_st*, std::chrono::duration<long, std::ratio<1l, 1000l> >, std::map<folly::AsyncSocket::OptionKey, int, std::less<folly::AsyncSocket::OptionKey>, std::allocator<std::pair<folly::AsyncSocket::OptionKey const, int> > > const&, folly::SocketAddress const&, std::string const&)'
/home/kshitij/proxygen/httpclient/samples/curl/CurlClientMain.cpp:91: undefined reference to `proxygen::HTTPConnector::~HTTPConnector()'
collect2: error: ld returned 1 exit status

可能的错误是什么。如果我以错误的方式构建它,请纠正我。

【问题讨论】:

    标签: c++ httpclient build-error


    【解决方案1】:

    g++ -std=c++11 -o my_echo CurlClient.o CurlClientMain.o HttpUpstreamSession.o -lproxygenhttpserver -lfolly -lglog -lgflags -pthread

    引用了 HttpUpstreamSession.h 包含,但实现是在同一目录中的 .cpp 中定义的。您需要构建 .cpp 或在构建中使用 .o 文件。

    【讨论】:

      【解决方案2】:

      我用来编译该示例的内容:

      gcc -I/usr/local/include -o a.out CurlClientMain.cpp CurlClient.cpp -L/usr/local/lib -lglog -lgflags -lstdc++ -lfolly -lproxygenlib -lpthread -lcrypto -lssl -lz -lwangle

      注意包含 libproxygenlib

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-12
        • 2018-10-01
        • 1970-01-01
        • 2016-09-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多