我安装了boost v.1.51.0,目录“boost_1_51_0”位于“/ home / user1 / boost /”下。要安装,我只是在“/ home / user1 / boost /”中解压缩tar文件。我在MinGW上使用C ++编译器。
现在,我正在尝试在代码中包含库。到目前为止我试过
#include </home/user1/boost/boost_1_51_0/libs/unordered/test/objects/test.hpp>
#include </home/user1/boost/boost_1_51_0/test.hpp>
#include </home/user1/boost/test.hpp>
#include <boost/test.hpp>
以及其他一些人。我甚至尝试将“/ home / user1 / boost /”的windows位置添加到路径中。
我错过了什么。
答案 0 :(得分:3)
您需要使用命令行参数为编译器提供include目录,例如: -I/home/user1/boost/boost_1_51_0
。
您可能还想将boost实际安装到系统目录中;有关详细信息,请参阅http://www.boost.org/doc/libs/1_51_0/doc/html/bbv2/installation.html。
答案 1 :(得分:3)
使用boost
文档中指定的内容(通常与上面<boost/test.hpp>
示例一致)。但请适当设置CPPPATH
/ CXXFLAGS
(构建环境)。对于MinGW
,您需要添加-I/home/user1/boost/boost_1_51_0/
。
答案 2 :(得分:3)
#include </home/user1/boost/boost_1_51_0/libs/unordered/test/objects/test.hpp>
这不起作用。可能会找到该文件,但之后会尝试包含其他文件,例如<boost/config.hpp>
,这些文件无法在您的包含路径中找到。
#include </home/user1/boost/boost_1_51_0/test.hpp>
^^^^^^^^
这不起作用,因为该文件不在该位置!如果您运行ls /home/user1/boost/boost_1_51_0/test.hpp
,您将收到错误,因为该文件不存在。
#include </home/user1/boost/test.hpp>
^^^^^^^^
这里也有同样的问题。
无论如何将绝对路径放在#include
指令中通常是个坏主意,所以上述所有尝试都是错误的。相反,您应该将文件包含在要使用的文件中:
#include <boost/test.hpp>
为此,您需要告诉编译器在哪里查找,因此您需要设置包含-I dir
的包含路径,在您的情况下需要-I /home/user1/boost/boost_1_51_0/
,以便编译器查找{{1}在boost/test.hpp
中找到/home/user1/boost/boost_1_51_0/
,当包含/home/user1/boost/boost_1_51_0/boost/test.hpp
时,它会按预期找到boost/config.hpp
。
但是,现在这会找到/home/user1/boost/boost_1_51_0/boost/config.hpp
,但您似乎想要包含其中一个Boost.Undordered单元测试所使用的标头...我不确定您认为自己为何会这样做。通常,您只想在/home/user1/boost/boost_1_51_0/boost.test.hpp
下的boost