프로젝트에 Boost의 Dynamic_bitset 클래스를 사용하려고하는데, 전체 라이브러리에서 필요한 파일의 하위 세트를 가져 왔습니다. 지금은 내 manager.cpp 파일 내부에"해당 파일이 없습니다."부스트 dynamic_bitset과 관련된 문제 포함
#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
이 동일한 프로젝트는 내 대학의 리눅스 시스템에서 잘 컴파일되지만 (g ++ 4.2.4가 있지만 문제가 될지는 의심 스럽지만) 위의 오류로 인해 우분투 랩톱에서 그렇게하지 못합니다. 분명히 존재하기 때문에 파일을 찾지 않는 이유는 무엇입니까?
모든 내 포함과 같은있다 : 나는 명시 적으로 (현지 ..) 폴더를 포함 할 경우
#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
로 간단하게 이루어집니다
그리고 include 디렉토리가'boost/dynamic_bitset'를 가리 킵니까? –
흠, 부스트 lib는 소스 폴더 자체에 있습니다. 다른 곳에서도 선언 할 필요가 없습니다. -i 옵션을 사용하여 컴파일을 시도하고 명시 적으로 부스트 폴더를 포함하지만 동일한 오류가 발생했습니다. – Neyoex
아, 미안 해요. '# include '에 "..."또는 <...>을 사용하고 있습니까? 전자는 "당신의 로컬 인클루드 디렉토리를 먼저 본다"는 의미이며, 후자는 "이것은 시스템 인클루드이므로 시스템 디렉토리를 살펴 봅니다."일반적으로 현재 디렉토리는 "시스템 인클루드 디렉토리"의 일부가 아닙니다. 코드에 #include <...>이 아닌'#include "..."'가 있어야합니다. –