“没有这样的文件”包含Boost dynamic_bitset的问题

时间:2012-12-24 11:21:31

标签: c++ boost g++ boost-dynamic-bitset

我正在尝试将Boost的Dynamic_bitset类用于项目,而我(相信我)已经从完整的库中获取了我需要的任何文件子集。现在我正在做一个

我的manager.cpp文件中有

#include "boost/dynamic_bitset.hpp",编译时我得到了这个:

In file included from manager.cpp:4:0:
boost/dynamic_bitset.hpp:15:51: fatal error: boost/dynamic_bitset/dynamic_bitset.hpp: No such file or directory

项目文件夹中的文件ierarchy如下:

proj/extras.h
proj/Makefile~
proj/manager.cpp
proj/boost
proj/boost/limits.hpp
proj/boost/dynamic_bitset.hpp
proj/boost/mpl
proj/boost/mpl/if.hpp
proj/boost/mpl/has_xxx.hpp
proj/boost/iterator.hpp
proj/boost/static_assert.hpp
proj/boost/dynamic_bitset
proj/boost/dynamic_bitset/dynamic_bitset.hpp
proj/boost/dynamic_bitset/config.hpp
proj/boost/config
proj/boost/config/select_platform_config.hpp
proj/boost/config/select_compiler_config.hpp
proj/boost/config/user.hpp
proj/boost/config/suffix.hpp
proj/boost/config/select_stdlib_config.hpp
proj/boost/dynamic_bitset_fwd.hpp
proj/boost/config.hpp
proj/boost/type_traits
proj/boost/type_traits/is_same.hpp
proj/boost/type_traits/is_pointer.hpp
proj/boost/type_traits/remove_pointer.hpp
proj/boost/type_traits/remove_const.hpp
proj/boost/type_traits/is_base_and_derived.hpp
proj/boost/type_traits/detail
proj/boost/type_traits/detail/bool_trait_def.hpp
proj/boost/type_traits/detail/yes_no_type.hpp
proj/boost/pending
proj/boost/pending/integer_log2.hpp
proj/boost/detail
proj/boost/detail/limits.hpp
proj/boost/detail/dynamic_bitset.hpp
proj/boost/detail/workaround.hpp
proj/boost/lowest_bit.hpp
proj/Makefile
proj/generator.cpp~
proj/generator.cpp

这个项目在我大学的linux系统上编译得很好(那里有g ++ 4.2.4,但我怀疑这很重要),但是在我的Ubuntu笔记本电脑上没有这样做(有上述错误)。为什么它找不到文件,因为它显然存在?

我的所有内容都是这样的:

#include <cstdlib>
#include <cstdio>
#include <iostream>
#include "boost/dynamic_bitset.hpp"
#include <cmath>
#include <list>
#include <unistd.h>
#include <sys/sem.h>
#include <sys/shm.h>
#include <errno.h>
#include <wait.h>
#include <time.h>
#include "extras.h"

编译只需

即可完成

g++ -o manager manager.c 要么 g++ -Iboost -o manager manager.c

如果我想明确包含(local ..)文件夹

1 个答案:

答案 0 :(得分:1)

-I .

至少如果您在包含boost的同一目录中进行编译。

你写了-Iboost和#include“boost / ...”。所以如果有一个boost子目录,它会查找./boost。