如何将boost项目包含在我的c++代码中
How to include the boost project in my c++ code
我正试图使用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
它没有找到传递了-I
的include,我得到了一个致命的错误。
fatal error: 'boost/network/uri' file not found
#include <boost/network/uri>
^
1 error generated.
使用他们的库开始编写示例代码的正确方法是什么?
由此推测:
我的测试代码与boost源所在的目录相同。
如果您已经将boost标头解压缩到源代码目录中,那么include语句将无法工作。带有<>的#include仅在标准include路径(/usr/include&依此类推)中搜索include文件。
因此,您可以尝试使用"的include语句,它也会从当前源目录中搜索,或者更好的做法是,使用发行版中的软件包管理器将官方的boost开发软件包安装到您的计算机上。
如果在启动g++的源代码目录中有目录"cpp-netlib-0.12.0-final/boost",编译器命令行参数"-Icpp-netlib-0.112.0-final"将帮助编译器找到boost。
-
关于您的Boost安装,您是否正确安装并链接了
Boost.date_time
?Boost的大部分内容只是标题;这里是Boost.system
和Boost.Regex
,并且不需要单独的二进制。然而,Boost.Date_time
有一个单独的二进制库,使用它还需要额外的安装步骤尽管Boost大多仅限于标头,但使用cpp-netlib仍然需要与Boost.System、Boost.Date_time、,和Boost.Regex.[参考文献1]
-
您的Boost库是否高于1.50.0版本?
-
您是否设置了
BOOST_ROOT
环境变量?
boost根目录的路径(通常为/usr/local/brust_1_60_0)在文档和邮件中有时被称为$BOOST_ROOT清单[参考文献2]
-
Boost是否安装在
/usr/local
中?您可能需要root
访问权限才能执行此操作。 -
您是否检查了安装的权限?如果您以root用户身份安装,您可能需要对非root帐户授予
chmod
755权限
参考文献:
1.http://cpp-netlib.org/0.12.0/getting_started.html#getting-已启动
2.http://www.boost.org/doc/libs/1_60_0/more/getting_started/unix-variants.html
希望这能有所帮助。
- 我的神经网络不起作用 [XOR 问题]
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 我的字符计数代码计算错误.为什么
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- cmake在我的项目中所需的所有静态库都不成功
- 为什么我的代码在输出中增加了93天
- 我的简单if-else语句是如何无法访问的代码
- 为什么我的for循环不能正确获取argv
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 0-1背包代码中的错误.我的代码中有什么错误
- 当我的阵列太大时出现分段错误
- 如何确认我的constexpr表达式实际上已经在编译时执行
- 为什么二进制搜索在我的测试中不起作用
- 如何指定我希望我的LIB链接到的DLL文件?-Visual Studio 2019
- 我的代码中有错误吗?使用BGI图形的C++代码对我不起作用
- 当我在main中声明了我的2d数组时,为什么我的程序会退出
- OpenGL在启用深度测试时不会丢弃我的碎片
- 为什么我的 std::ref 无法按预期工作?
- clang整洁10忽略了我的NOLINT命令
- 为什么我的删除节点函数实际上没有删除节点?