如何使用 g++ 在 Linux 上使用 boost/shared_ptr.hpp 编译 c++ 程序

Posted

技术标签:

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

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

【问题讨论】:

不回答问题但可能回答您的问题:标准库现在支持 std::shared_ptr 只是 #include <memory> 【参考方案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,尽管在评论中并不清楚。

以上是关于如何使用 g++ 在 Linux 上使用 boost/shared_ptr.hpp 编译 c++ 程序的主要内容,如果未能解决你的问题,请参考以下文章

linux 如何知道home目录挂载在哪个硬盘上

gcc 使用正弦和 boost:interval 编译错误

如何在Linux上使用相关的头文件编译这个C ++代码?

如何使用Linux终端(如python,在gcc或g ++中编译一行C ++代码?

使用 g++ 在 Linux 上使用 Valgrind 拦截全局函数

如何在 Linux 上高效编译 Visual Studio C++ 项目