C++ g++;makefile,include error,没有这样的文件或目录

C++ g++;makefile,include error,没有这样的文件或目录,c++,include,makefile,g++,include-path,C++,Include,Makefile,G++,Include Path,我试图包括以下标题: #include <libs/serialization/example/portable_binary_iarchive.hpp> #include <libs/serialization/example/portable_binary_oarchive.hpp> 在我的Makefile中,我添加了: -I/home/nobody/boost_1_45_0/libs 但是,当我编译时,会收到如下错误消息: error: libs/seriali

我试图包括以下标题:

#include <libs/serialization/example/portable_binary_iarchive.hpp>
#include <libs/serialization/example/portable_binary_oarchive.hpp>
在我的Makefile中,我添加了:

-I/home/nobody/boost_1_45_0/libs
但是,当我编译时,会收到如下错误消息:

error: libs/serialization/example/portable_binary_iarchive.hpp: No such file or directory
有人能告诉我我做错了什么吗?我还包括boost库,如

#include <boost/archive/binary_oarchive.hpp>
为什么这不适用于其他位置的标题?如何更改生成文件?当前的第一条语句如下所示:

test: test.o 
    g++ -O3 -ffast-math -funroll-loops -ansi -pedantic-errors -L/usr/lib -lboost_filesystem -lboost_serialization -lboost_iostreams -lz -I/usr/include/boost -I/home/nobody/boost_1_45_0/libs -o test test.o
得到

您的Makefile需要

-I/home/nobody/boost_1_45_0
注意,我在结尾省略了
/libs
。这是因为您的
#include
指令已经列出了该目录


对于第二个示例,您希望在此位置显示的文件是:

/usr/include/boost/boost/archive/binary_oarchive.hpp
                   ^^^^^ (repeated boost here)
如果不是,g++很可能默认使用
/usr/include
作为

#include <boost/archive/binary_oarchive.hpp>

对于编译器来说是无用的。

g++对它搜索的路径在
#include
#include”“
之间进行了区分。无法立即回忆起细节,但这就是正在发生的事情…#include应该是正确的选项,在这里使用。@dmckee,这与此无关
#include”“
首先搜索当前目录,然后与
#include
的行为相同。我刚刚尝试了这个方法,但即使在从-I路径的末尾删除了libs之后,它仍然不起作用,同样的错误仍然出现。另外-I/usr/include/boost可能不是必需的,我删除了它,它似乎没有改变任何东西。如果有关系的话,#include在我的顶级.cpp文件中包含的头文件中。@user788171想一想,包含示例目录中的头文件真的很奇怪。您在
/home/nobody/boost\u 1\u 45\u 0/include/serialization/…
中真正想要的是什么?我注意到其中包含了其他Boost头文件,这是您真正应该做的。是的,我实际上想在示例中使用这些头文件,我正在基于示例中的头文件创建一个派生类。@user788171如果您真的想使用这样的示例文件,我所能建议的就是确保你正确地拼写了你的路径。如果文件在该目录中,我的上述回答应该有效。@user788171,您是否删除了
libs
/libs
/home/nobody/boost_1_45_0/libs/serialization/example/portable_binary_iarchive.hpp
-I/home/nobody/boost_1_45_0
/usr/include/boost/boost/archive/binary_oarchive.hpp
                   ^^^^^ (repeated boost here)
#include <boost/archive/binary_oarchive.hpp>
-I/usr/include/boost