【问题标题】:how to compile c++ program using boost/shared_ptr.hpp on linux with g++如何使用 g++ 在 Linux 上使用 boost/shared_ptr.hpp 编译 c++ 程序
【发布时间】:2013-06-03 08:35:14
【问题描述】:

我使用 boost shared_ptr 头文件编写了一个程序。如何编译这个程序?我在编译时用 g++ 的-l 选项提到了什么库。

【问题讨论】:

  • 不回答问题但可能回答您的问题:标准库现在支持 std::shared_ptr 只是 #include <memory>

标签: c++ boost shared-ptr dynamic-linking


【解决方案1】:

指定包含boost 目录的目录,该目录包含头文件。例如:

  • 加速安装:

    /home/user/boost_1_53_0/boost/shared_ptr.hpp

  • 包括:

    #include <boost/shared_ptr.hpp>
    
  • 编译(注意-I,而不是-l):

    g++ -I /home/user/boost_1_53_0 main.cpp -o main

请注意,不需要动态链接,因为boost::shared_ptr 是一个模板,并且完全在头文件中定义。

如果您的编译器支持 C++11,请改用 std::shared_ptr&lt;&gt;(如 Roee 所述):

  • 包括:

    #include <memory> // use std::shared_ptr<T>
    
  • 编译:

    g++ -std=c++11 main.cpp -o main

【讨论】:

  • 请注意这里的-I 是大写字母 i 用于指定包含目录(在问题中,OP 写了一个小写 L,这不是必需的)。
  • @interjay,是的。这是我的回答中的-I,尽管在评论中并不清楚。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-03
  • 1970-01-01
  • 1970-01-01
  • 2010-11-16
  • 1970-01-01
相关资源
最近更新 更多