Название: boost::signal
Отправлено: 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 (цель: Настольный компьютер) Во время выполнения сборки на этапе "Сборка"
Народ кто использовал сигналы буста, как исправить ситуацию?
Название: Re: boost::signal
Отправлено: BRE от Октябрь 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 и расширения>
Название: Re: boost::signal
Отправлено: blood_shadow от Октябрь 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
Название: Re: boost::signal
Отправлено: blood_shadow от Октябрь 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
Название: Re: boost::signal
Отправлено: BRE от Октябрь 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 Внимательно. :)
Название: Re: boost::signal
Отправлено: blood_shadow от Октябрь 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
тоже самое...
Название: Re: boost::signal
Отправлено: Пантер от Октябрь 06, 2011, 21:02
Use CMake, Luke!
Название: Re: boost::signal
Отправлено: blood_shadow от Октябрь 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\ которые нихрена не работают... странно как-то...
Название: Re: boost::signal
Отправлено: blood_shadow от Октябрь 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 ?
|