【问题标题】:how to use boost in linux如何在linux中使用boost
【发布时间】:2011-08-02 13:45:04
【问题描述】:

我正在尝试使用 boost 中的共享指针类(?)。我已经下载了 boost 并将其解压缩到我的源文件夹 (src) 中的子文件夹 (boost) 中。然后我添加了一行:

#include "boost/shared_ptr.hpp"

当我尝试编译时,我得到一个错误:

错误:boost/smart_ptr/shared_ptr.hpp:没有这样的文件或目录

要编译程序,我必须添加什么?

我正在开发一台没有 root 权限的科学 linux 机器

【问题讨论】:

    标签: c++ linux boost


    【解决方案1】:

    您需要使用g++,将目录添加为编译选项,如g++ -I./boost ...,或者基本上添加为命令行选项-I,在您安装的相对或绝对路径后面不加空格你的提升库。还请记住,boost 的某些元素(例如线程库)也需要链接一些库以供将来参考,并且您还必须在编译时使用 -L 选项包含这些文件路径... boost::shared_ptr 的情况并非如此,但只是给你一个提示。

    【讨论】:

    • 这不起作用,因为错误是由从 shared_ptr.hpp 调用的文件引起的。我已经用 -I./ 替换了它,它起作用了
    • 啊,好吧,但同样,问题是编译器不知道从哪里访问正确的文件......例如,在 shared_ptr.hpp 文件中,#include 预处理器指令最有可能使用<...> 语法而不是使用引号,这意味着它只会在可搜索的目录中找到文件。如果当前目录不是使用尖括号语法的可搜索目录,它将找不到该文件。如果您使用<...> 语法,则必须使用-I 选项来包含任何需要搜索的路径,或将这些路径添加到您的环境变量中。
    【解决方案2】:

    假设您已将 boost 安装到主目录的某个子目录,您需要执行其中一项来指定编译器应在何处查找 boost 头文件:

    • 在编译器命令行中添加 -I 标志 (GCC docs)
    • 设置CPLUS_INCLUDE_PATH环境变量(GCC docs)

    【讨论】:

      【解决方案3】:

      您可以添加 gcc -I 选项。 Documentation

      【讨论】:

        猜你喜欢
        • 2015-08-08
        • 2020-03-26
        • 1970-01-01
        • 2013-06-16
        • 2011-05-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多