如何使用 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<>
(如 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终端(如python,在gcc或g ++中编译一行C ++代码?