boost库路径包括

boost库路径包括,boost,mingw,Boost,Mingw,我安装了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/us

我安装了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位置添加到路径中


我错过了一些东西

您需要使用命令行参数向编译器提供include目录,例如
-I/home/user1/boost/boost\u 1\u 51\u 0


您可能还希望实际将boost安装到系统目录中;有关详细信息,请参见。

使用
boost
文档中指定的包含项(通常按照上面的
示例)。但是适当地设置
CPPPATH
/
cxflags
(构建环境)。对于
MinGW
,您需要添加
-I/home/user1/boost/boost\u 1\u 51\u 0/

#include </home/user1/boost/boost_1_51_0/libs/unordered/test/objects/test.hpp>  
这里也有同样的问题

无论如何,将绝对路径放在
#include
指令中通常是个坏主意,因此上述所有尝试都是错误的。相反,您应该将该文件作为其预期用途包括在内:

#include <boost/test.hpp>
#包括
要使其工作,您需要告诉编译器在哪里查找,因此,您使用
-I dir
设置include路径,在本例中,该路径需要是
-I/home/user1/boost/boost\u 1\u 51\u 0/
,这样编译器就会在
/home/user1/boost/boost\u 1\u 51\u 0/
中查找
/home/user1/boost/boost\u 1\u 0/boost/test.hpp
,并在其中包括
boost/config.hpp
它将按预期找到
/home/user1/boost/boost\u 1\u 51\u 0/boost/config.hpp


但是,现在将找到
/home/user1/boost/boost\u 1\u 51\u 0/boost.test.hpp
,但您似乎希望包含一个boost.Unordered单元测试使用的头。。。我不知道你为什么认为你想要那个。通常,您只希望在bootstrap.sh提供错误库的
Boost
下包含Boost头,而不希望在
libs

下包含Boost头。日志文件在末尾读取:bootstrap.sh在库上给出错误。日志文件在其结尾处读取:“…builtins.c:33:23:致命错误:sys/wait.h:未终止此类文件或目录编译。execunix.c:17:26:致命错误:sys/resource.h:未终止此类文件或目录编译。fileunix.c:98:17:致命错误:ar.h:未终止此类文件或目录编译。”我按照你提供的链接上的说明进行操作。尝试在/home/user1/boost/boost\u 1\u 51\u 0处运行引导程序,但收到相同的错误。否,目前所有操作都在命令行上。生成环境在安装时提供了有关库文件的错误。见下面的评论。我使用URL.Thx上的安装说明进行响应。comp.directive
-I/home/user1/boost/boost\u 1\u 51\u 0/boost/config.hpp
有效。但是,它只允许我在
/home/user1/boost/boost\u 1\u 51\u 0/boost/中查找标题。
我想(?)我应该在s.t的某个地方定义一个“boost root”目录。当我从代码中引用库时,比如“#include”,该文件将在“boost root”及其所有子目录中查找。我想我没有错过任何关于MinGW的节目。但在安装Boost时出现了一些问题。我不知道我正在使用Boost.Unordered的标题。在。。。快速查找,它是STL上bin.tree搜索的替代方法,看起来很不错。是否完全兼容,是否会增加额外负担?为什么我要避免使用它?我有一个我正在编写的代码,它正在使用Boost库,包括AudioStreamInput.h、Metadata.h等。它也将使用线程库,但还无法获得这些过程。哦,天哪。我想你完全不明白我的答案。
-I/home/user1/boost/boost\u 1\u 51\u 0/
的全部要点是为头定义一个“boost root”。我从来没有告诉过你使用
-I/home/user1/boost/boost\u 1\u 51\u 0/boost/config.hpp
(那是一个文件而不是目录!)或
-I/home/user1/boost/boost\u 1\u 51\u 0/boost
(那不是正确的目录)。我也没有说你不应该使用boost.Unordered。我说过不应该使用单元测试中的头文件。如果要使用Boost.Unordered,请遵循并使用
#include
#include
,不要使用
#include
快速注释,
-I/home/user1/Boost/Boost\u 1\u 51\u 0/Boost/
是我使用的指令,编译器错误是致命错误:Boost/test.hpp没有这样的文件或目录<代码>-I/home/user1/boost/boost\u 1\u 51\u 0/boost/config.hpp是一个错误,我通过windows进行剪切和粘贴。
#include </home/user1/boost/test.hpp>
                            ^^^^^^^^
#include <boost/test.hpp>