如何将boost项目包括在我的c++;代码 我试图用Boost的CPP NETLIB编写一个超级平凡的程序来解析一个C++文件中的HTTP URL。p>

如何将boost项目包括在我的c++;代码 我试图用Boost的CPP NETLIB编写一个超级平凡的程序来解析一个C++文件中的HTTP URL。p>,c++,boost,C++,Boost,代码非常简单,如下所示: #include <boost/network/uri> #include <iostream> using namespace boost::network; int main() { uri::uri instance("http://www.example.com"); std::cout << "scheme: " << instance.scheme() << std::endl

代码非常简单,如下所示:

#include <boost/network/uri>
#include <iostream>

using namespace boost::network;

int main() {
    uri::uri instance("http://www.example.com");
    std::cout << "scheme: " << instance.scheme() << std::endl
        << "host: " << instance.host() << std::endl;

    return 0;
}
使用他们的库开始编写示例代码的正确方法是什么?

由此猜测:

我的测试代码与boost源代码所在的目录相同

如果您已经将boost头解压缩到源代码目录中,那么include语句将无法工作。#include with仅搜索标准include路径(/usr/include等)中的include文件

因此,您可以尝试使用带有“”的include语句,该语句也将从当前源目录进行搜索,或者更好的是,使用发行版中的软件包管理器在您的计算机上安装一个正式的boost开发包

如果在启动g++的源代码目录中有目录“cpp-netlib-0.12.0-final/boost”,编译器命令行参数“-Icpp-netlib-0.12.0-final”将帮助编译器查找boost

  • 关于Boost安装,您是否正确安装并链接了
    Boost.date\u time
    ?大部分提振仅限于头球;这里,
    Boost.system
    Boost.Regex
    ,不需要单独的二进制文件。但是,but
    Boost.Date\u time
    有一个单独的二进制库,使用它还需要额外的安装步骤。[参考文献2]

    尽管Boost主要是头文件,但应用程序是使用 cpp netlib仍然需要链接Boost.System、Boost.Date\u time、, 和Boost.Regex。[参考文献1]

  • 您的Boost库是否高于1.50.0版

  • 您是否设置了
    BOOST\u ROOT
    环境变量

  • boost根目录的路径(通常为/usr/local/boost\u 1\u 60\u 0) 有时在文档和邮件中被称为$BOOST_ROOT 清单[参考文献2]

  • Boost是否安装在
    /usr/local
    中?您可能需要
    root
    访问权限才能执行此操作

  • 您是否检查了安装的权限?如果您是以root用户身份安装的,则可能需要对非root用户帐户授予
    chmod
    755权限

  • 参考文献:
    1.
    2.


    希望这能有所帮助。

    我对boost了解不多,但您确定应该使用
    boost/network/uri
    而不是
    boost/network/uri.hpp
    ,这给了我一个新的错误。致命错误:
    #include
    我在
    boost/network/uri/
    中看到了一个
    config.hpp
    ,但我在目录中没有看到
    boost/config.hpp
    。我想你的boost安装已经失败了。也许您没有安装开发包?
    fatal error: 'boost/network/uri' file not found
    #include <boost/network/uri>
             ^
    1 error generated.