我正在尝试使用Boost的cpp-netlib编写一个非常简单的程序来解析示例c++文件中的HTTP URL。
代码很简单,如下所示:
#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源代码位于同一目录中。要编译,我只需执行以下操作:
g++ -Icpp-netlib-0.12.0-final -o test test.cpp
fatal error: 'boost/network/uri' file not found
#include <boost/network/uri>
^
1 error generated.要开始使用他们的库来编写示例代码,正确的方法是什么?
发布于 2016-04-30 11:55:04
从这里可以猜到:
如果您已经将boost头文件解压到源代码目录中,那么您的include语句将不起作用。带有<>的#include只搜索标准包含路径(/usr/include &等等)中的包含文件。
所以你可以用"“代替include语句,这也会从当前的源代码目录中搜索,或者更好的是,使用发行版中的包管理器将官方的boost开发包安装到您的计算机上。
如果在启动g++的源代码目录中有"cpp-netlib-0.12.0-final/ boost“目录,编译器命令行参数"-Icpp-netlib-0.12.0-final”将帮助编译器找到boost。
发布于 2016-04-30 12:13:45
Boost.date_time?Boost的大部分内容只包含头文件;这里是Boost.system和Boost.Regex,不需要单独的二进制文件。但是,Boost.Date_time有一个单独的二进制库,使用它需要额外的安装步骤。参考文献2尽管Boost主要是头文件,但使用cpp-netlib构建的应用程序仍然需要与Boost.System、Boost.Date_time和Boost.Regex进行链接。参考文献1
BOOST_ROOT环境变量?boost根目录的路径(通常为/usr/local/boost_1_60_0)在文档和邮件列表中有时称为$BOOST_ROOT参考文献2
是否在/usr/local中安装了
root访问权限才能执行此操作。chmod到非超级用户帐户参考文献:
希望这能有所帮助。
https://stackoverflow.com/questions/36950105
复制相似问题