Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> boost::filesystem, Не собираются примеры 
V
    Опции темы
ilyuha
Дата 4.3.2010, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 10.7.2007

Репутация: нет
Всего: нет



На пути изучения буста, я столкнулся с непонятной, для меня, траблой - не собираются примеры из доков boost::filesystem. В частности, при сборке этого примера, gcc вываливает такую вот простыню:
Цитата
obj/Debug/main.o||In function `__static_initialization_and_destruction_0':|
/home/ilyuha/boost_1_42_0/boost/system/error_code.hpp|208|undefined reference to `boost::system::get_system_category()'|
/home/ilyuha/boost_1_42_0/boost/system/error_code.hpp|209|undefined reference to `boost::system::get_generic_category()'|
/home/ilyuha/boost_1_42_0/boost/system/error_code.hpp|214|undefined reference to `boost::system::get_generic_category()'|
/home/ilyuha/boost_1_42_0/boost/system/error_code.hpp|215|undefined reference to `boost::system::get_generic_category()'|
/home/ilyuha/boost_1_42_0/boost/system/error_code.hpp|216|undefined reference to `boost::system::get_system_category()'|
obj/Debug/main.o||In function `error_code':|
/home/ilyuha/boost_1_42_0/boost/system/error_code.hpp|315|undefined reference to `boost::system::get_system_category()'|
obj/Debug/main.o||In function `boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> boost::filesystem::current_path<boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >()':|
/home/ilyuha/boost_1_42_0/boost/filesystem/operations.hpp|530|undefined reference to `boost::filesystem::detail::get_current_path_api(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)'|
obj/Debug/main.o||In function `boost::enable_if<boost::filesystem::is_basic_path<boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >, boost::filesystem::file_status>::type boost::filesystem::status<boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >(boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> const&)':|
/home/ilyuha/boost_1_42_0/boost/filesystem/operations.hpp|259|undefined reference to `boost::filesystem::detail::status_api(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, boost::system::error_code&)'|
obj/Debug/main.o||In function `boost::enable_if<boost::filesystem::is_basic_path<boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >, bool>::type boost::filesystem::exists<boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >(boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> const&)':|
/home/ilyuha/boost_1_42_0/boost/filesystem/operations.hpp|293|undefined reference to `boost::filesystem::detail::status_api(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, boost::system::error_code&)'|
obj/Debug/main.o||In function `boost::enable_if<boost::filesystem::is_basic_path<boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >, bool>::type boost::filesystem::is_directory<boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >(boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> const&)':|
/home/ilyuha/boost_1_42_0/boost/filesystem/operations.hpp|303|undefined reference to `boost::filesystem::detail::status_api(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, boost::system::error_code&)'|
obj/Debug/main.o||In function `boost::filesystem::basic_directory_iterator<boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >::m_init(boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> const&)':|
/home/ilyuha/boost_1_42_0/boost/filesystem/operations.hpp|944|undefined reference to `boost::filesystem::detail::not_found_error()'|
/home/ilyuha/boost_1_42_0/boost/filesystem/operations.hpp|953|undefined reference to `boost::filesystem::detail::dir_itr_first(void*&, void*&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, boost::filesystem::file_status&, boost::filesystem::file_status&)'|
obj/Debug/main.o||In function `boost::filesystem::basic_directory_iterator<boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >::increment()':|
/home/ilyuha/boost_1_42_0/boost/filesystem/operations.hpp|1009|undefined reference to `boost::filesystem::detail::dir_itr_increment(void*&, void*&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, boost::filesystem::file_status&, boost::filesystem::file_status&)'|
obj/Debug/main.o||In function `~dir_itr_imp':|
/home/ilyuha/boost_1_42_0/boost/filesystem/operations.hpp|877|undefined reference to `boost::filesystem::detail::dir_itr_close(void*&, void*&)'|
||=== Build finished: 14 errors, 0 warnings ===|

Не уверен что проблема связана с неправильной сборкой буста, т.к. проги, использующие program_options, прекрасно собираются. Соответственно, в иде тоже все прописано.

ЗЫ gcc 4.4.1, Code::Blocks, Ubuntu.
PM MAIL   Вверх
SenkraD
Дата 4.3.2010, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

Репутация: 2
Всего: 23



ilyuha,  а вы точно указали линковщику lib-файл?


--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
ilyuha
Дата 4.3.2010, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 10.7.2007

Репутация: нет
Всего: нет



Да, в иде все пути прописанны
PM MAIL   Вверх
SenkraD
Дата 4.3.2010, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

Репутация: 2
Всего: 23



Стоп. У вас boost весь собран?
Вы линкеру какие либы указали?


--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
ilyuha
Дата 4.3.2010, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 10.7.2007

Репутация: нет
Всего: нет



Да, при сборке указывал: 
Код

./bootstrap.sh --with-libraries=all

PM MAIL   Вверх
SenkraD
Дата 4.3.2010, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

Репутация: 2
Всего: 23



так, boost собран весь. А либы вы какие линкуете к приммеру?


--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
ilyuha
Дата 4.3.2010, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 10.7.2007

Репутация: нет
Всего: нет



В опциях путь к либам указан  smile 

user posted image

Это сообщение отредактировал(а) ilyuha - 4.3.2010, 17:19
PM MAIL   Вверх
SenkraD
Дата 4.3.2010, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

Репутация: 2
Всего: 23



ilyuha, это путь а какие-именно либы ты просиш прилинковать -
на сколько я знаю у boost под UNIX, а вернее gcc, нет автоматической линковки


--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
ilyuha
Дата 4.3.2010, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 10.7.2007

Репутация: нет
Всего: нет



Указал линкеру в Progect -> Build Options прямой путь к libboost_filesystem.a - все без изменений... :( Ничего не понимаю  smile 
PM MAIL   Вверх
andrew_121
Дата 4.3.2010, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 6
Всего: 33



ilyuha, какая IDE?
запусти сборку в консоли, и покажи вывод.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
ilyuha
Дата 4.3.2010, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 10.7.2007

Репутация: нет
Всего: нет



Цитата(andrew_121 @  4.3.2010,  18:43 Найти цитируемый пост)
ilyuha, какая IDE?

см. первый пост:
Цитата(ilyuha @  4.3.2010,  14:23 Найти цитируемый пост)
Code::Blocks

Цитата(andrew_121 @  4.3.2010,  18:43 Найти цитируемый пост)
запусти сборку в консоли, и покажи вывод.

ммм... Странно, но C::B не создал Makefile. Хорошо, попробую.
PM MAIL   Вверх
andrew_121
Дата 4.3.2010, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 6
Всего: 33



вот.


Присоединённый файл ( Кол-во скачиваний: 18 )
Присоединённый файл  ______.png 37,81 Kb


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
ilyuha
Дата 4.3.2010, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 10.7.2007

Репутация: нет
Всего: нет



Спасибо, но:
Цитата(ilyuha @ 4.3.2010,  18:24)
Указал линкеру в Progect -> Build Options прямой путь к libboost_filesystem.a - все без изменений

Я так это и делал

Это сообщение отредактировал(а) ilyuha - 4.3.2010, 19:35
PM MAIL   Вверх
andrew_121
Дата 4.3.2010, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 6
Всего: 33



ilyuha, незнаю как ты делаешь. но библиотеки для линковки, добавляются так как я показал.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
bsa
Дата 4.3.2010, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



ilyuha, не знаю, что и где ты указывал... Для начала нужно добавить директорию с библиотеками в соответствующий список. Затем нужно добавить библиотеки. Причем, без расширения и приставки lib. Я точно не помню, как именно в этой среде, возможно нужно еще указать ключ -l (L маленькая) перед названием библиотеки.

Это сообщение отредактировал(а) bsa - 4.3.2010, 20:46
PM   Вверх
ilyuha
Дата 6.3.2010, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 10.7.2007

Репутация: нет
Всего: нет



Сорри, что долго не отвечал...

Цитата(bsa @  4.3.2010,  20:46 Найти цитируемый пост)
Причем, без расширения и приставки lib. 

о_О Таких либ у меня вообще нет....
Вот что имеется впапке с либами:
Цитата
$ ls /home/ilyuha/boost_1_42_0/bin.v2/libs/filesystem/build/gcc-4.4.1/release/link-static/threading-multi
libboost_filesystem.a  operations.o  path.o  portability.o  utf8_codecvt_facet.o

$ ls /home/ilyuha/boost_1_42_0/bin.v2/libs/filesystem/build/gcc-4.4.1/release/threading-multi
libboost_filesystem.so.1.42.0  operations.o  path.o  portability.o  utf8_codecvt_facet.o

Пробовались самые разные варианты - подсовывалась линкеру(в опция проекта) и libboost_filesystem.a, и объектники(по отдельности и вместе). И из второй диры как только не перепробовал. Данные папки былитакже добавлены Progect -> Build Options -> Search Directories -> Linker.

Интересно то, что прога, использующая boost::program_options, как я уже говорил, прекрасно собирается, после добавления линкеру в опциях проекта libboost_program_options.a

Это сообщение отредактировал(а) ilyuha - 6.3.2010, 15:10
PM MAIL   Вверх
andrew_121
Дата 6.3.2010, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 6
Всего: 33



Цитата(ilyuha @  6.3.2010,  15:08 Найти цитируемый пост)
о_О Таких либ у меня вообще нет....
Вот что имеется впапке с либами:

не понятно, почему у тебя буст лежит в домашнем каталоге?! должен лежать в "/usr/local"
поможет -
Цитата

sudo ./bjam install

выполнить в корне сорсов буста.

Добавлено через 1 минуту и 25 секунд
Цитата(ilyuha @  6.3.2010,  15:08 Найти цитируемый пост)
$ ls /home/ilyuha/boost_1_42_0/bin.v2/libs/filesystem/build/gcc-4.4.1/release/link-static/threading-multi
libboost_filesystem.a  operations.o  path.o  portability.o  utf8_codecvt_facet.o

$ ls /home/ilyuha/boost_1_42_0/bin.v2/libs/filesystem/build/gcc-4.4.1/release/threading-multi
libboost_filesystem.so.1.42.0  operations.o  path.o  portability.o  utf8_codecvt_facet.o

и ты вот с этими путями работаешь? smile  тебе не показалось странным то, что имена каталогов какие-то не практичные?

Добавлено через 10 минут и 52 секунды
как вариант, чтоб упростить себе жизнь, можешь установить буст из репозитория.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
ilyuha
Дата 6.3.2010, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 10.7.2007

Репутация: нет
Всего: нет



Цитата(andrew_121 @  6.3.2010,  15:45 Найти цитируемый пост)
и ты вот с этими путями работаешь?   тебе не показалось странным то, что имена каталогов какие-то не практичные?

Не издевайся smile Конечно, это слабо меня оправдывает, но я буст первый раз пытаюсь заюзать, а в лине я аж 3 недели уже  smile 
Буду пробовать  smile 
PM MAIL   Вверх
ilyuha
Дата 6.3.2010, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 10.7.2007

Репутация: нет
Всего: нет



andrew_121, Спасибо большое smile Все собирается. Просто я, дурак такой, делал при установке:
Цитата

$ ./bjam install

вместо:
Цитата

$ sudo ./bjam install

...
PM MAIL   Вверх
bsa
Дата 9.3.2010, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



ilyuha, зайди в менеджер установки пакетов твоего дистрибутива и найди там упоминания boost. Ставить нужно dev (или devel) пакеты - там будет все необходимое. Не ставь вручную без крайней необходимости то, что можно установить через менеджер пакетов.
PM   Вверх
ilyuha
Дата 10.3.2010, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 10.7.2007

Репутация: нет
Всего: нет



bsa, Просто чтобы упростить процесс, или же имеются другие причины?
PM MAIL   Вверх
bsa
Дата 11.3.2010, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Цитата(ilyuha @  10.3.2010,  13:09 Найти цитируемый пост)
bsa, Просто чтобы упростить процесс, или же имеются другие причины? 

1. чтобы упростить процесс
2. чтобы не захламлять систему неподконтрольными менеджеру пакетов файлами.
3. чтобы случайно ее не повредить
PM   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0749 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.