![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| kometa_75 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 24.10.2007 Репутация: нет Всего: нет |
Что есть:
1. IDE msvc 7.1 2. STLport-5.1.4 (собрана в многопоточном варианте). 3. boost_1_34_1 Что делаю: В файле C:\boost_1_34_1\tools\build\v2\user-config.jam : 1. Раскоментил: using msvc ; 2. Раскоментил и исправил: using stlport : 5.1 : C:\STLport-5.1.4 C:\STLport-5.1.4\lib ; 3. Запустил батник с параметрами:bjam --prefix="C:\boost" --without-python install 4. Получил откомпиленный boost. Проблема: 1. Собираю проект с примером с оф.сайта: http://www.boost.org/libs/serialization/example/demo.cpp 2. При линкове получаю: LINK : fatal error LNK1104: cannot open file 'libboost_serialization-vc71-mt-p-1_34_1.lib' Вопрос: Как уже очевидно, такой либы у меня нет. Зато есть libboost_serialization-vc71-mt-s-1_34_1.lib. В чём может быть проблема ? Может где-то надо что-то изменить/добавить, или пример не удачный ? ЗЫ. Читал в других топиках как надо конфигурировать батник для использования boost + STLport. Однако все прочитанные варианты не работают с версией boost_1_34_1. |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
2. Там правильный пример.
3. Нужно ещё добавить stdlib=stlport 4. Уверен? У меня вызов сборки с stlport выглядит примерно так:
-j1 - собирать в один поток(у меня outpost вылетает, когда начинают плодиться десятки процессов во время сборки --toolset=gcc - указываешь компилятор(у тебя нужно msvc) threading=multi - многопоточный вариант runtime-link=shared - линковка с динамической версией стандартной библиотеки(в данном случае stlport) link=shared - собирать только динамические версии бустовых либ stdlib=stlport - компоновать с stlport release debug - сделать как релизные версии, так и отладочные stage - только собрать(не устанавливать) -d+2 - выводить сами комманды сборки(проще найти проблему) >./build.log 2>&1 - перенаправление вывода в файл build.log -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| kometa_75 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 24.10.2007 Репутация: нет Всего: нет |
Вобщем собрал. Однако при компиляции вышеупомянутого примера получаю ошибки линкера типа:
error LNK2019: unresolved external symbol "public: void __thiscall boost::archive::text .... на некоторые функции, н-р: ::save, ::load и т.п. Судя по всему проблема в области именно текстовых потоков. Интересно, это - нормальный глюк или опять что-то не так ? ЗЫ. Эти ошибки вылазят как на обыкновенном билде STLport, так и на собранном с опцией /Zc:wchar_t. |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
project->settings->linker->...->aditional dependencies->добавляешь имя бустовой либы для сериализации. Видимо auto-linkage не срабатывает из-за того, что собрано с stlport(и, соответственно, либы имеют другой тэг). -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| kometa_75 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 24.10.2007 Репутация: нет Всего: нет |
libboost_serialization-vc71-mt-p-1_34_1.lib подключил. Не помогает...
Вот содержание одной из шести ошибок: unresolved external symbol "public: void __thiscall boost::archive::text_oarchive_impl<class boost::archive::text_oarchive>::save(class stlp_std::basic_string<char,class stlp_std::char_traits<char>,class stlp_std::allocator<char> > const &)" (?save@?$text_oarchive_impl@Vtext_oarchive@archive@boost@@@archive@boost@@QAEXABV?$basic_string@DV?$char_traits@D@stlp_std@@V?$allocator@D@2@@stlp_std@@@Z) referenced in function "public: static void __cdecl boost::archive::save_access::save_primitive<class boost::archive::text_oarchive,class stlp_std::basic_string<char,class stlp_std::char_traits<char>,class stlp_std::allocator<char> > >(class boost::archive::text_oarchive &,class stlp_std::basic_string<char,class stlp_std::char_traits<char>,class stlp_std::allocator<char> > const &)" (??$save_primitive@Vtext_oarchive@archive@boost@@V?$basic_string@DV?$char_traits@D@stlp_std@@V?$allocator@D@2@@stlp_std@@@save_access@archive@boost@@SAXAAVtext_oarchive@12@ABV?$basic_string@DV?$char_traits@D@stlp_std@@V?$allocator@D@2@@stlp_std@@@Z) |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Либо собралось без stlport, либо нужно поиграться комментированием/расскомментированием следующих строк(в самом верху модуля)
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| kometa_75 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 24.10.2007 Репутация: нет Всего: нет |
В начале файла с примером включал/выключал эти строки - не помогает.
Кстати, а что в данном контексте означает 1 ? Вкл или выкл ? Это сообщение отредактировал(а) kometa_75 - 24.10.2007, 16:08 |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Означает вкл.
Добавлено через 1 минуту и 11 секунд
А ты уверен, что подключил? Не ругается на то, что не может её найти? Library directories добавил? -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| kometa_75 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 24.10.2007 Репутация: нет Всего: нет |
Да, либа есть, компилер её видит. Ругается только на конкретные методы. Как я уже говорил, когда в коде вызывается boost::archive::text_ ... В принципе, меня интересует только бинарные архивы, только пока не могу написать тест, с boost до этого дела не имел. Может подскажешь простой тест, или ссылку кинешь ?
|
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
kometa_75, тут дело не в тесте, а в том, что у тебя что-то не так собралось, или настроено.
Ругается только на отдельные методы потому что бОльшая часть буста header-only, а, соответственно можно использовать вообще без сборки. Ок, а пути к STLport'овским хэдерам у тебя в проекте прописаны? -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| kometa_75 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 24.10.2007 Репутация: нет Всего: нет |
Да, судя по всему, ругань идёт на STLport. Всякие там basic_string и т.п.
С путями к файлам всё нормально. STLport юзаю уже давно, никогда ещё проблем с ним не имел. Блин, я уже не знаю в каких ещё настройках можно покопаться. Это сообщение отредактировал(а) kometa_75 - 24.10.2007, 17:32 |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Он не может найти someFunc(stlp_std::SomeType); Но, к примеру, может найти someFunc(stlp_mt_std::SomeType); Вывод: выставить точно такие же настройки STLport с какими собирался boost. Обратить внимание на dynamic/static, multi/single-threaded, release/debug/stldebug. Т.к. MSVC я не пользуюсь, то советов как выставить такие же настройки я тебе дать не могу(mingw - пожалста, хоть сейчас). -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| kometa_75 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 24.10.2007 Репутация: нет Всего: нет |
STLport я собирал по дефолту, т.е. многопоточную версию, все либы(и статические и динамические). Кстати, в батнике я писал только это: bjam --toolset=msvc --without-python stdlib=stlport install
т.к. твой пример не хотел собирать всё. В принципе сейчас попробую ещё раз твой вариант. |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Ну а буст ты собирал не многопоточный(по всей видимости)...
И не должен... -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| kometa_75 |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 24.10.2007 Репутация: нет Всего: нет |
Хм... Он создал у меня всего ДВЕ либы. О сериализации я уже молчу. Хотя о многопточности ты верно подметил. Но, этот пример я взял с той ссылки, что ты давал. Вобщем щас собираю заново, через несколько минут всё увижу. |
||||
|
|||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |