在MAC OSX上无法识别Boost网络库

时间:2016-01-12 19:43:37

标签: c++ macos boost network-programming cpp-netlib

所以我正在尝试编译的当前代码:

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

int main()
{
    boost::network::http::client client;

    boost::network::http::client::request request("http://www.example.com");
    request << boost::network::header("Connection", "close");
    boost::network::http::client::response response = client.get(request);

    std::cout << body(response);

    return 0;
}

从[此帖子](How can I fetch data from a website inside a C++ program)收集的所有代码。所以我尝试使用提供的一些不同的脚本自己运行这个东西,但没有一个工作。以下是我尝试过的一些脚本:

g++ -I. -I$BOOST_ROOT -L$BOOST_ROOT/stage/lib -lboost_system
g++ -I. -I/usr/local/include/boost -lboost_thread -lboost_system
-lcppnetlib -client -connections -lcppnetlib -server -parsers
-lcppnetlib -uri -pthread main.cpp
./a.out

我也尝试过:

g++ -I. -I$BOOST_ROOT -L$BOOST_ROOT/stage/lib -lboost_system -pthread main.cpp

还尝试过:

g++ -I. -I/usr/local/Cellar/boost/1.59.0/include/boost -L/usr/local/Cellar/boost/1.59.0/lib -lboost_system pthread main.cpp

但是我在阅读了一些帖子之后注意到-I用于在根目录中表示boost文件的头文件,而-L用于查找boost根目录的库。所以我不确定我已经下载了什么,因为我现在有2个副本,我不确定它们中的任何一个是否有效,并且我尝试了每个组合试图让这个东西运行。显然,我有几个副本的助推器坐在这个地方。 因此/ usr / local / Cellar目录包含最新的...

/usr/local/Cellar/boost/1.59.0/include/boost

/usr/local/Cellar/boost/1.59.0/include/lib

此外,/ usr / local /目录同时包含..

的/ usr /本地/包括/升压/

的/ usr /本地/ lib中

再次,

的/ usr /本地的/ opt /升压/包含

的/ usr /本地的/ opt /升压/包括/ lib中

有多个副本会破坏这个过程吗?我很困惑。

这是我的目录结构:
directory structure

所以我已经尝试搞清楚了这一点,我只是难倒......我不熟悉脚本(最近刚从这个问题中学到了大部分内容),而我根本就不知道如何编译这个东西..任何帮助都是任何方式,形状或形式都是无法理解的。提前感谢任何帮助过的人。

1 个答案:

答案 0 :(得分:1)

cpp-netlib提供了示例,它不是Boost C ++的一部分。

但是,如README所述,它可以作为Boost安装的补充进行构建和安装。