Russian Qt Forum
Ноябрь 23, 2024, 04:02 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: boost::signal  (Прочитано 4542 раз)
blood_shadow
Гость
« : Октябрь 06, 2011, 18:42 »

Короче захотел я заюзать сигналы и слоты буста, скачал собрал как тут пишут - http://ascend4.org/Binary_installer_for_Boost_on_MinGW

далее в про-файле добавил такое:
Код:
INCLUDEPATH += C:\Program_Files\Libs\boost_1_47_0\
LIBS += -LD:C:\Program_Files\Libs\boost_1_47_0\boost-build\boost\bin.v2\libs\signals\build\gcc-mingw-4.5.0\release\link-static -libboost_signals-mgw45-1_47


это сама либа libboost_signals-mgw45-1_47.а

правильно ли я подключил?

но в итоге выбывают такие ошибки:
Код:
debug/main.o: In function `main': 
C:\Program_Files\Qt_dynamic\files_dynamic\Boost_STL_examples-build-desktop/../Boost_STL_examples/main.cpp:72: undefined reference to `boost::signals::connection::~connection()'
debug/main.o: In function `~signal0':
C:\Program_Files\Qt_dynamic\files_dynamic\Boost_STL_examples-build-desktop/../../../Libs/boost_1_47_0/boost/signals/signal_template.hpp:142: undefined reference to `boost::signals::trackable::~trackable()'
C:\Program_Files\Qt_dynamic\files_dynamic\Boost_STL_examples-build-desktop/../../../Libs/boost_1_47_0/boost/signals/signal_template.hpp:142: undefined reference to `boost::signals::detail::signal_base::~signal_base()'
C:\Program_Files\Qt_dynamic\files_dynamic\Boost_STL_examples-build-desktop/../../../Libs/boost_1_47_0/boost/signals/signal_template.hpp:142: undefined reference to `boost::signals::detail::signal_base::~signal_base()'
debug/main.o: In function `slot<HelloWorld>':
C:\Program_Files\Qt_dynamic\files_dynamic\Boost_STL_examples-build-desktop/../../../Libs/boost_1_47_0/boost/signals/slot.hpp:124: undefined reference to `boost::signals::detail::slot_base::create_connection()'
debug/main.o:C:\Program_Files\Qt_dynamic\files_dynamic\Boost_STL_examples-build-desktop/../../../Libs/boost_1_47_0/boost/signals/signal_template.hpp:286: undefined reference to `boost::signals::detail::signal_base_impl::connect_slot(boost::any const&, boost::signals::detail::stored_group const&, boost::shared_ptr<boost::signals::detail::slot_base::data_t>, boost::signals::connect_position)'
debug/main.o:C:\Program_Files\Qt_dynamic\files_dynamic\Boost_STL_examples-build-desktop/../../../Libs/boost_1_47_0/boost/signals/signal_template.hpp:337: undefined reference to `boost::signals::detail::call_notification::call_notification(boost::shared_ptr<boost::signals::detail::signal_base_impl> const&)'
debug/main.o:C:\Program_Files\Qt_dynamic\files_dynamic\Boost_STL_examples-build-desktop/../../../Libs/boost_1_47_0/boost/signals/signal_template.hpp:354: undefined reference to `boost::signals::detail::named_slot_map::end()'
debug/main.o:C:\Program_Files\Qt_dynamic\files_dynamic\Boost_STL_examples-build-desktop/../../../Libs/boost_1_47_0/boost/signals/signal_template.hpp:354: undefined reference to `boost::signals::detail::named_slot_map::end()'
debug/main.o:C:\Program_Files\Qt_dynamic\files_dynamic\Boost_STL_examples-build-desktop/../../../Libs/boost_1_47_0/boost/signals/signal_template.hpp:354: undefined reference to `boost::signals::detail::named_slot_map::end()'
debug/main.o:C:\Program_Files\Qt_dynamic\files_dynamic\Boost_STL_examples-build-desktop/../../../Libs/boost_1_47_0/boost/signals/signal_template.hpp:354: undefined reference to `boost::signals::detail::named_slot_map::begin()'
debug/main.o:C:\Program_Files\Qt_dynamic\files_dynamic\Boost_STL_examples-build-desktop/../../../Libs/boost_1_47_0/boost/signals/signal_template.hpp:337: undefined reference to `boost::signals::detail::call_notification::~call_notification()'
debug/main.o:C:\Program_Files\Qt_dynamic\files_dynamic\Boost_STL_examples-build-desktop/../../../Libs/boost_1_47_0/boost/signals/signal_template.hpp:337: undefined reference to `boost::signals::detail::call_notification::~call_notification()'
debug/main.o: In function `signal0':
C:\Program_Files\Qt_dynamic\files_dynamic\Boost_STL_examples-build-desktop/../../../Libs/boost_1_47_0/boost/signals/signal_template.hpp:197: undefined reference to `boost::signals::detail::signal_base::signal_base(boost::function2<bool, boost::signals::detail::stored_group, boost::signals::detail::stored_group> const&, boost::any const&)'
C:\Program_Files\Qt_dynamic\files_dynamic\Boost_STL_examples-build-desktop/../../../Libs/boost_1_47_0/boost/signals/signal_template.hpp:197: undefined reference to `boost::signals::detail::signal_base::~signal_base()'
debug/main.o: In function `~data_t':
C:\Program_Files\Qt_dynamic\files_dynamic\Boost_STL_examples-build-desktop/../../../Libs/boost_1_47_0/boost/signals/slot.hpp:32: undefined reference to `boost::signals::connection::~connection()'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [debug\Boost_STL_examples.exe] Error 1
mingw32-make: *** [debug] Error 2
Процесс "C:/MinGW/bin/mingw32-make.exe" завершился с кодом %2.
Ошибка сборки проекта Boost_STL_examples (цель: Настольный компьютер)
Во время выполнения сборки на этапе "Сборка"

Народ кто использовал сигналы буста, как исправить ситуацию?
Записан
BRE
Гость
« Ответ #1 : Октябрь 06, 2011, 18:49 »

Внимательно смотрим на
LIBS += -LD:C:\Program_Files\Libs\boost_1_47_0\boost-build\boost\bin.v2\libs\signals\build\gcc-mingw-4.5.0\release\link-static -libboost_signals-mgw45-1_47

1. Где лежит буст?
2. Подключение библиотеки выполняется с помощью -l <имя библиотеки без впереди стоящего префикса lib и расширения>
Записан
blood_shadow
Гость
« Ответ #2 : Октябрь 06, 2011, 18:55 »

Внимательно смотрим на
LIBS += -LD:C:\Program_Files\Libs\boost_1_47_0\boost-build\boost\bin.v2\libs\signals\build\gcc-mingw-4.5.0\release\link-static -libboost_signals-mgw45-1_47

1. Где лежит буст?
2. Подключение библиотеки выполняется с помощью -l <имя библиотеки без впереди стоящего префикса lib и расширения>


исправил, недоглядел...

так всеравно не пашет:
Код:
LIBS += -LC:\Program_Files\Libs\boost_1_47_0\boost-build\boost\bin.v2\libs\signals\build\gcc-mingw-4.5.0\release\link-static -libboost_signals-mgw45-1_47.a
и так тоже:
Код:
LIBS += -LC:\Program_Files\Libs\boost_1_47_0\boost-build\boost\bin.v2\libs\signals\build\gcc-mingw-4.5.0\release\link-static -libboost_signals-mgw45-1_47

Буст лежит в C:\Program_Files\Libs\boost_1_47_0\

собралось сюда - C:\Program_Files\Libs\boost_1_47_0\boost-build, а тут я так понимаю для сигналов папка:
C:\Program_Files\Libs\boost_1_47_0\boost-build\boost\bin.v2\libs\signals
Записан
blood_shadow
Гость
« Ответ #3 : Октябрь 06, 2011, 19:02 »

и так тоже ничего (((
LIBS += -LC:\Program_Files\Libs\boost_1_47_0\boost-build\boost\bin.v2\libs\signals\build\gcc-mingw-4.5.0\release\link-static -boost_signals-mgw45-1_47
Записан
BRE
Гость
« Ответ #4 : Октябрь 06, 2011, 19:07 »

и так тоже ничего (((
LIBS += -LC:\Program_Files\Libs\boost_1_47_0\boost-build\boost\bin.v2\libs\signals\build\gcc-mingw-4.5.0\release\link-static -boost_signals-mgw45-1_47
Замени на -lboost_signals-mgw45-1_47
Внимательно. Улыбающийся
Записан
blood_shadow
Гость
« Ответ #5 : Октябрь 06, 2011, 19:21 »

неужели все так печально...

вот заменил, получилось:
Код:
LIBS += -LC:\Program_Files\Libs\boost_1_47_0\boost-build\boost\bin.v2\libs\signals\build\gcc-mingw-4.5.0\release\link-static -lboost_signals-mgw45-1_47

тоже самое...
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #6 : Октябрь 06, 2011, 21:02 »

Use CMake, Luke!
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
blood_shadow
Гость
« Ответ #7 : Октябрь 06, 2011, 21:14 »

Use CMake, Luke!
все наконец совершилось... проблема была в глюканутом Boost.Build + bjam
короче пересобрал все вроде все пашет
я вот одного не пойму зачем делать отпут в C:\Boost\lib - тут лежат правильные либы
и раскидынные либы по Program_Files\Libs\boost_1_47_0\boost-build\boost\bin.v2\libs\ которые нихрена не работают...

странно как-то...
Записан
blood_shadow
Гость
« Ответ #8 : Октябрь 06, 2011, 21:28 »

Кстати, а можно ли как-то забить дерикторию с бустом C:\Program_Files\Libs\Boost\include\boost-1_47\
в настройки креатора, чтобы не писать в каждом проекте LIBS += -LC:\Program_Files\Libs\Boost\lib\ -lboost_signals-mgw45-mt-1_47 ?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.1 секунд. Запросов: 22.