【发布时间】:2012-12-24 11:21:30
【问题描述】:
我正在尝试将 Boost 的 Dynamic_bitset 类用于一个项目,并且我(相信我)已经从整个库中获取了我需要的任何文件子集。现在我正在做一个
#include "boost/dynamic_bitset.hpp" 在我的 manager.cpp 文件中,编译时我得到这个:
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
项目文件夹内的文件层次结构如下:
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
如果我想明确包含(本地..)文件夹
【问题讨论】:
-
你的包含目录指向
boost/dynamic_bitset? -
嗯,boost lib 位于源文件夹本身,我也不应该在其他地方声明它,是吗?我确实尝试使用 -i 选项进行编译并明确包含 boost 文件夹,但我得到了同样的错误
-
啊,等一下,对不起。您是在为您的
#include使用“...”还是<...>?前者的意思是“先看你的本地包含目录”,后者的意思是“这是一个系统包含,所以看系统目录。通常,当前目录不是“系统包含目录”的一部分。换句话说,你你的代码中应该有#include "...",而不是#include <...>。 -
我已经在使用
#include "..."而不是<...> -
也许您可以发布您的实际代码 [每边大约 5 行] 和编译标志?
标签: c++ boost g++ boost-dynamic-bitset