【发布时间】:2013-06-03 08:35:14
【问题描述】:
我使用 boost shared_ptr 头文件编写了一个程序。如何编译这个程序?我在编译时用 g++ 的-l 选项提到了什么库。
【问题讨论】:
-
不回答问题但可能回答您的问题:标准库现在支持 std::shared_ptr 只是
#include <memory>。
标签: c++ boost shared-ptr dynamic-linking
我使用 boost shared_ptr 头文件编写了一个程序。如何编译这个程序?我在编译时用 g++ 的-l 选项提到了什么库。
【问题讨论】:
#include <memory>。
标签: c++ boost shared-ptr dynamic-linking
指定包含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,这不是必需的)。
-I,尽管在评论中并不清楚。