Не Могу Сбилдить Пример С Boost::filesystem

  • Автор темы vsp
  • Дата начала
Статус
Закрыто для дальнейших ответов.
V

vsp

Гость
#1
Добрый день.

Помогите, пожалуйста, решить мою проблему. Никак не могу сбилдить пример http://www.boost.org/doc/libs/1_49_0/libs/...xample/tut4.cpp. И вроде бы проделал всё как говорилось:

1. Скачал boost_1_49_0.tar.bz2
2. Разархивировал в /usr/local
3. В etc/environment в переменную PATH добавил: PATH="...:/usr/local/boost_1_49_0:/usr/local/boost_1_49_0/boost"
4. Перейдя в boost_1_49_0 запустил ./bootstrap.sh --prefix=/usr/local/boost_1_49_0/boost
5. Запустил ./b2 install
Вылетели некоторые ошибки:
...failed gcc.compile.c++ bin.v2/libs/iostreams/build/gcc-4.6.1/release/threading-multi/zlib.o...
gcc.compile.c++ bin.v2/libs/iostreams/build/gcc-4.6.1/release/threading-multi/bzip2.o
libs/iostreams/src/bzip2.cpp:20:56: фатальная ошибка: bzlib.h: Нет такого файла или каталога
компиляция прервана.
и целый ряд ошибок, связанных с patchlevel.h, например:
...failed gcc.compile.c++ bin.v2/libs/iostreams/build/gcc-4.6.1/release/threading-multi/bzip2.o...
...skipped <pbin.v2/libs/iostreams/build/gcc-4.6.1/release/threading-multi>libboost_iostreams.so.1.49.0 for lack of <pbin.v2/libs/iostreams/build/gcc-4.6.1/release/threading-multi>zlib.o...
...skipped <p/usr/local/boost_1_49_0/boost/lib>libboost_iostreams.so.1.49.0 for lack of <pbin.v2/libs/iostreams/build/gcc-4.6.1/release/threading-multi>libboost_iostreams.so.1.49.0...
...skipped <p/usr/local/boost_1_49_0/boost/lib>libboost_iostreams.so for lack of <p/usr/local/boost_1_49_0/boost/lib>libboost_iostreams.so.1.49.0...
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.6.1/release/threading-multi/numeric.o
In file included from ./boost/python/detail/prefix.hpp:13:0,
from ./boost/python/numeric.hpp:8,
from libs/python/src/numeric.cpp:6:
./boost/python/detail/wrap_python.hpp:75:24: фатальная ошибка: patchlevel.h: Нет такого файла или каталога
компиляция прервана.
6. Установил какие только возможно питоновские пакеты.
7. создал в корне каталог /data и в нём файл tut4.cpp (точ в точ повторяющий код примера).
8. Запустил сборку:
c++ -I usr/local/boost_1_49_0 tut4.cpp -o tut4
И тут вылетили ошибки:
/tmp/cc5IS28d.o: In function `__static_initialization_and_destruction_0(int, int)':
tut4.cpp:(.text+0x3ba): undefined reference to `boost::system::generic_category()'
tut4.cpp:(.text+0x3c4): undefined reference to `boost::system::generic_category()'
tut4.cpp:(.text+0x3ce): undefined reference to `boost::system::system_category()'
/tmp/cc5IS28d.o: In function `boost::filesystem3::path::codecvt()':
tut4.cpp:(.text._ZN5boost11filesystem34path7codecvtEv[boost::filesystem3::path::
codecvt()]+0x7): undefined reference to `boost::filesystem3::path::wchar_t_codecvt_facet()'
/tmp/cc5IS28d.o: In function `boost::filesystem3::path::iterator::increment()':
tut4.cpp:(.text._ZN5boost11filesystem34path8iterator9incrementEv[boost::filesyst
em3::path::iterator::increment()]+0xd): undefined reference to `boost::filesystem3::path::m_path_iterator_increment(boost::filesystem3::path
::iterator&)'
/tmp/cc5IS28d.o: In function `boost::filesystem3::operator<(boost::filesystem3::path const&, boost::filesystem3::path const&)':
tut4.cpp:(.text._ZN5boost11filesystem3ltERKNS0_4pathES3_[boost::filesystem3::ope
rator<(boost::filesystem3::path const&, boost::filesystem3::path const&)]+0x15): undefined reference to `boost::filesystem3::path::end() const'
tut4.cpp:(.text._ZN5boost11filesystem3ltERKNS0_4pathES3_[boost::filesystem3::ope
rator<(boost::filesystem3::path const&, boost::filesystem3::path const&)]+0x2a): undefined reference to `boost::filesystem3::path::begin() const'
tut4.cpp:(.text._ZN5boost11filesystem3ltERKNS0_4pathES3_[boost::filesystem3::ope
rator<(boost::filesystem3::path const&, boost::filesystem3::path const&)]+0x3f): undefined reference to `boost::filesystem3::path::end() const'
tut4.cpp:(.text._ZN5boost11filesystem3ltERKNS0_4pathES3_[boost::filesystem3::ope
rator<(boost::filesystem3::path const&, boost::filesystem3::path const&)]+0x54): undefined reference to `boost::filesystem3::path::begin() const'
/tmp/cc5IS28d.o: In function `boost::filesystem3::exists(boost::filesystem3::path const&)':
tut4.cpp:(.text._ZN5boost11filesystem36existsERKNS0_4pathE[boost::filesystem3::e
xists(boost::filesystem3::path const&)]+0x1c): undefined reference to `boost::filesystem3::detail::status(boost::filesystem3::path const&, boost::system::error_code*)'
/tmp/cc5IS28d.o: In function `boost::filesystem3::is_directory(boost::filesystem3::path const&)':
tut4.cpp:(.text._ZN5boost11filesystem312is_directoryERKNS0_4pathE[boost::filesys
tem3::is_directory(boost::filesystem3::path const&)]+0x1c): undefined reference to `boost::filesystem3::detail::status(boost::filesystem3::path const&, boost::system::error_code*)'
/tmp/cc5IS28d.o: In function `boost::filesystem3::is_regular_file(boost::filesystem3::path const&)':
tut4.cpp:(.text._ZN5boost11filesystem315is_regular_fileERKNS0_4pathE[boost::file
system3::is_regular_file(boost::filesystem3::path const&)]+0x1c): undefined reference to `boost::filesystem3::detail::status(boost::filesystem3::path const&, boost::system::error_code*)'
/tmp/cc5IS28d.o: In function `boost::filesystem3::file_size(boost::filesystem3::path const&)':
tut4.cpp:(.text._ZN5boost11filesystem39file_sizeERKNS0_4pathE[boost::filesystem3
::file_size(boost::filesystem3::path const&)]+0x15): undefined reference to `boost::filesystem3::detail::file_size(boost::filesystem3::path const&, boost::system::error_code*)'
/tmp/cc5IS28d.o: In function `boost::filesystem3::detail::dir_itr_imp::~dir_itr_imp()':
tut4.cpp:(.text._ZN5boost11filesystem36detail11dir_itr_impD2Ev[_ZN5boost11filesy
stem36detail11dir_itr_impD5Ev]+0x22): undefined reference to `boost::filesystem3::detail::dir_itr_close(void*&, void*&)'
/tmp/cc5IS28d.o: In function `boost::filesystem3::directory_iterator::directory_iterator(boost::filesystem
3::path const&)':
tut4.cpp:(.text._ZN5boost11filesystem318directory_iteratorC2ERKNS0_4pathE[_ZN5bo
ost11filesystem318directory_iteratorC5ERKNS0_4pathE]+0x4e): undefined reference to `boost::filesystem3::detail::directory_iterator_construct(boost::filesystem3:
:directory_iterator&, boost::filesystem3::path const&, boost::system::error_code*)'
/tmp/cc5IS28d.o: In function `boost::filesystem3::directory_iterator::increment()':
tut4.cpp:(.text._ZN5boost11filesystem318directory_iterator9incrementEv[boost::fi
lesystem3::directory_iterator::increment()]+0x15): undefined reference to `boost::filesystem3::detail::directory_iterator_increment(boost::filesystem3:
:directory_iterator&, boost::system::error_code*)'
/tmp/cc5IS28d.o: In function `boost::filesystem3::path::path<boost::filesystem3::directory_entry>(boost::filesystem3::directory_entry const&, boost::enable_if<boost::filesystem3::path_traits::is_pathable<boost::decay<boost::filesystem3::directory_entry>::type>, void>::type*)':
tut4.cpp:(.text._ZN5boost11filesystem34pathC2INS0_15directory_entryEEERKT_PNS_9e
nable_ifINS0_11path_traits11is_pathableINS_5decayIS4_E4typeEEEvE4typeE[_ZN5boost
1
1filesystem34pathC5INS0_15directory_entryEEERKT_PNS_9enable_ifINS0_11path_traits
1
1is_pathableINS_5decayIS4_E4typeEEEvE4typeE]+0x2b): undefined reference to `boost::filesystem3::path_traits::dispatch(boost::filesystem3::directory_entr
y const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::codecvt<wchar_t, char, __mbstate_t> const&)'
collect2: выполнение ld завершилось с кодом возврата 1
9. На всякий случай запустил сборку буста, но уже с ключем -a(опция Rebuild All): ./b2 -a install. Результат: ...updated 37362 targets... и ни единной ошибки, только некоторые предупреждения вида:
libs/python/src/object/enum.cpp: В функции «boost::python::api::object boost::python::objects::{anonymous}::new_enum_type(const char*, const char*)»:
libs/python/src/object/enum.cpp:150:11: предупреждение: доступ по указателю с приведением типа нарушает правила перекрытия объектов в памяти [-Wstrict-aliasing]
Что я сделал не так? И тогда, какая должна быть последовательность действий, чтобы добиться правильного собранного исполняемого файла?
 
Статус
Закрыто для дальнейших ответов.