problem z boostem

0

Witam. Od wczoraj męczę się z boostem przy kompilacji. Przeszukałem trochę internet i kilka osób miało taki problem (pisze pod Windows 7 x86 w Code::Blocks mingw). Dodanie : #define BOOST_THREAD_USE_LIB w configu w głównym folderze boosta nic nie daje. Natknąłem się również na ten temat https://svn.boost.org/trac/boost/ticket/4258 , jednak w ogóle nie mogę znaleźć tej linijki o którym pisze ten gość na końcu. Wiele jest takich odrębnych kodów w tych tematach, ale w ogóle nie piszą gdzie dokładnie są. Tutaj logi z błędów:

obj\Debug\beds.o:beds.cpp:(.text$_ZN9SchedulerD1Ev[Scheduler::~Scheduler()]+0xe3)||undefined reference to `_imp___ZN5boost6threadD1Ev'|
obj\Debug\beds.o:beds.cpp:(.text$_ZN9SchedulerD1Ev[Scheduler::~Scheduler()]+0x1cc)||undefined reference to `_imp___ZN5boost6threadD1Ev'|
obj\Debug\beds.o:beds.cpp:(.text$_ZN9SchedulerD0Ev[Scheduler::~Scheduler()]+0x1b7)||undefined reference to `_imp___ZN5boost6threadD1Ev'|
obj\Debug\beds.o:beds.cpp:(.text$_ZN9SchedulerD0Ev[Scheduler::~Scheduler()]+0x2aa)||undefined reference to `_imp___ZN5boost6threadD1Ev'|
obj\Debug\connection.o||In function `~Dispatcher':|
D:\Mapy\0.3.7-pre.r98\dispatcher.h|62|undefined reference to `_imp___ZN5boost6threadD1Ev'|
obj\Debug\connection.o:D:\Mapy\0.3.7-pre.r98\dispatcher.h|62|more undefined references to `_imp___ZN5boost6threadD1Ev' follow|
obj\Debug\dispatcher.o||In function `Dispatcher':|
D:\Mapy\0.3.7-pre.r98\dispatcher.cpp|31|undefined reference to `_imp___ZN5boost6threadC1Ev'|
obj\Debug\dispatcher.o||In function `ZN5boost6threadaSENS_6detail13thread_move_tIS0_EE':|
c:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\boost\thread\detail\thread.hpp|232|undefined reference to `_imp___ZN5boost6threadD1Ev'|
obj\Debug\dispatcher.o||In function `Dispatcher':|
D:\Mapy\0.3.7-pre.r98\dispatcher.cpp|34|undefined reference to `_imp___ZN5boost6threadD1Ev'|
D:\Mapy\0.3.7-pre.r98\dispatcher.cpp|34|undefined reference to `_imp___ZN5boost6threadD1Ev'|
D:\Mapy\0.3.7-pre.r98\dispatcher.cpp|35|undefined reference to `_imp___ZN5boost6threadD1Ev'|
obj\Debug\dispatcher.o||In function `ZN5boost6detail19basic_cv_list_entry4waitENS0_7timeoutE':|
c:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\boost\thread\win32\condition_variable.hpp|82|undefined reference to `_imp___ZN5boost11this_thread18interruptible_waitEPvNS_6detail7timeoutE'|
obj\Debug\dispatcher.o||In function `Dispatcher':|
D:\Mapy\0.3.7-pre.r98\dispatcher.cpp|31|undefined reference to `_imp___ZN5boost6threadC1Ev'|
obj\Debug\dispatcher.o||In function `ZN5boost6threadaSENS_6detail13thread_move_tIS0_EE':|
c:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\boost\thread\detail\thread.hpp|232|undefined reference to `_imp___ZN5boost6threadD1Ev'|
obj\Debug\dispatcher.o||In function `Dispatcher':|
D:\Mapy\0.3.7-pre.r98\dispatcher.cpp|34|undefined reference to `_imp___ZN5boost6threadD1Ev'|
D:\Mapy\0.3.7-pre.r98\dispatcher.cpp|34|undefined reference to `_imp___ZN5boost6threadD1Ev'|
D:\Mapy\0.3.7-pre.r98\dispatcher.cpp|35|undefined reference to `_imp___ZN5boost6threadD1Ev'|
obj\Debug\dispatcher.o||In function `thread<boost::_bi::bind_t<void, void (*)(void*), boost::_bi::list1<boost::_bi::value<void*> > > >':|
c:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\boost\thread\detail\thread.hpp|204|undefined reference to `_imp___ZN5boost6thread12start_threadEv'|
obj\Debug\exception.o:D:\Mapy\0.3.7-pre.r98\exception.cpp|150|undefined reference to `MiniDumpWriteDump@28'|
obj\Debug\game.o||In function `~Dispatcher':|
D:\Mapy\0.3.7-pre.r98\dispatcher.h|62|undefined reference to `_imp___ZN5boost6threadD1Ev'|
D:\Mapy\0.3.7-pre.r98\dispatcher.h|62|undefined reference to `_imp___ZN5boost6threadD1Ev'|
obj\Debug\luascript.o||In function `~Dispatcher':|
D:\Mapy\0.3.7-pre.r98\dispatcher.h|62|undefined reference to `_imp___ZN5boost6threadD1Ev'|
D:\Mapy\0.3.7-pre.r98\dispatcher.h|62|undefined reference to `_imp___ZN5boost6threadD1Ev'|
obj\Debug\manager.o||In function `~Dispatcher':|
D:\Mapy\0.3.7-pre.r98\dispatcher.h|62|undefined reference to `_imp___ZN5boost6threadD1Ev'|
obj\Debug\manager.o:D:\Mapy\0.3.7-pre.r98\dispatcher.h|62|more undefined references to `_imp___ZN5boost6threadD1Ev' follow|
obj\Debug\otserv.o||In function `ZN5boost6detail19basic_cv_list_entry4waitENS0_7timeoutE':|
c:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\boost\thread\win32\condition_variable.hpp|82|undefined reference to `_imp___ZN5boost11this_thread18interruptible_waitEPvNS_6detail7timeoutE'|
obj\Debug\otserv.o||In function `interruptible_wait':|
c:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\boost\thread\win32\thread_data.hpp|161|undefined reference to `_imp___ZN5boost11this_thread18interruptible_waitEPvNS_6detail7timeoutE'|
obj\Debug\otserv.o||In function `ZN10Dispatcher4exitEv':|
D:\Mapy\0.3.7-pre.r98\dispatcher.h|73|undefined reference to `_imp___ZN5boost6thread4joinEv'|
obj\Debug\otserv.o||In function `ZN9Scheduler4exitEv':|
D:\Mapy\0.3.7-pre.r98\scheduler.h|74|undefined reference to `_imp___ZN5boost6thread4joinEv'|
obj\Debug\otserv.o||In function `interruptible_wait':|
c:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\boost\thread\win32\thread_data.hpp|161|undefined reference to `_imp___ZN5boost11this_thread18interruptible_waitEPvNS_6detail7timeoutE'|
obj\Debug\outputmessage.o||In function `~Dispatcher':|
D:\Mapy\0.3.7-pre.r98\dispatcher.h|62|undefined reference to `_imp___ZN5boost6threadD1Ev'|
D:\Mapy\0.3.7-pre.r98\dispatcher.h|62|undefined reference to `_imp___ZN5boost6threadD1Ev'|
obj\Debug\player.o||In function `~Dispatcher':|
D:\Mapy\0.3.7-pre.r98\dispatcher.h|62|undefined reference to `_imp___ZN5boost6threadD1Ev'|
D:\Mapy\0.3.7-pre.r98\dispatcher.h|62|undefined reference to `_imp___ZN5boost6threadD1Ev'|
obj\Debug\protocolgame.o||In function `~Dispatcher':|
D:\Mapy\0.3.7-pre.r98\dispatcher.h|62|undefined reference to `_imp___ZN5boost6threadD1Ev'|
obj\Debug\protocolgame.o:D:\Mapy\0.3.7-pre.r98\dispatcher.h|62|more undefined references to `_imp___ZN5boost6threadD1Ev' follow|
obj\Debug\scheduler.o||In function `Scheduler':|
D:\Mapy\0.3.7-pre.r98\scheduler.cpp|25|undefined reference to `_imp___ZN5boost6threadC1Ev'|
obj\Debug\scheduler.o||In function `ZN5boost6threadaSENS_6detail13thread_move_tIS0_EE':|
c:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\boost\thread\detail\thread.hpp|232|undefined reference to `_imp___ZN5boost6threadD1Ev'|
obj\Debug\scheduler.o||In function `Scheduler':|
D:\Mapy\0.3.7-pre.r98\scheduler.cpp|29|undefined reference to `_imp___ZN5boost6threadD1Ev'|
D:\Mapy\0.3.7-pre.r98\scheduler.cpp|29|undefined reference to `_imp___ZN5boost6threadD1Ev'|
D:\Mapy\0.3.7-pre.r98\scheduler.cpp|30|undefined reference to `_imp___ZN5boost6threadD1Ev'|
obj\Debug\scheduler.o||In function `~Dispatcher':|
D:\Mapy\0.3.7-pre.r98\dispatcher.h|62|undefined reference to `_imp___ZN5boost6threadD1Ev'|
obj\Debug\scheduler.o:D:\Mapy\0.3.7-pre.r98\dispatcher.h|62|more undefined references to `_imp___ZN5boost6threadD1Ev' follow|
obj\Debug\scheduler.o||In function `Scheduler':|
D:\Mapy\0.3.7-pre.r98\scheduler.cpp|25|undefined reference to `_imp___ZN5boost6threadC1Ev'|
obj\Debug\scheduler.o||In function `ZN5boost6threadaSENS_6detail13thread_move_tIS0_EE':|
c:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\boost\thread\detail\thread.hpp|232|undefined reference to `_imp___ZN5boost6threadD1Ev'|
obj\Debug\scheduler.o||In function `Scheduler':|
D:\Mapy\0.3.7-pre.r98\scheduler.cpp|29|undefined reference to `_imp___ZN5boost6threadD1Ev'|
D:\Mapy\0.3.7-pre.r98\scheduler.cpp|29|undefined reference to `_imp___ZN5boost6threadD1Ev'|
D:\Mapy\0.3.7-pre.r98\scheduler.cpp|30|undefined reference to `_imp___ZN5boost6threadD1Ev'|
obj\Debug\scheduler.o||In function `ZN5boost6detail19basic_cv_list_entry4waitENS0_7timeoutE':|
c:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\boost\thread\win32\condition_variable.hpp|82|undefined reference to `_imp___ZN5boost11this_thread18interruptible_waitEPvNS_6detail7timeoutE'|
c:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\boost\thread\win32\condition_variable.hpp|82|undefined reference to `_imp___ZN5boost11this_thread18interruptible_waitEPvNS_6detail7timeoutE'|
||More errors follow but not being shown.|
||Edit the max errors limit in compiler options...|
||=== Build finished: 50 errors, 0 warnings ===|
0

prawdopodobnie w pliku configure wystarczy ustawić ten target, tak żeby sie zdefiniowało MINGW64 jeżeli nie czeka cie zapewne przeszukanie plików *.c, *.cpp, *.h, *.hpp i odszukanie MINGW64_ i wtedy odnajdziesz te define

0

W opcjach linkera musisz dodać biblioteki boosta, a konkretnie libboost_thread_mgw46-mt-1_49.a i być może libboost_system-mgw46-mt-1_49.a. Nazwy mogą się trochę różnić w zależności od wersji boosta. Oczywiście musisz mieć go tak zbudowanego, żeby miał biblioteki dla mingw. Binarki do ściągnięcia ich chyba nie mają, musisz go sam zbudować.

0

Niedawno znowu do tego siadłem. Ciągle ten sam problem. Makro, które wcześniej napisałem w configu nic nie daje... Fakt, sam tego zbudować jakoś nie potrafię, znalazłem coś na necie ale w ogóle mi to nie idzie. Nie widzę plików do których ludzie się odnoszą albo po prostu źle szukam. Mam prośbę, jeżeli ktoś znalazł w wersji 1.49 ten kawałek kodu :

#if defined(__MINGW64__) || (__MINGW32_MAJOR_VERSION >3) ||             \
    ((__MINGW32_MAJOR_VERSION==3) && (__MINGW32_MINOR_VERSION>=18))

To bardzo proszę o napisanie tutaj gdzie on się znajduje, chyba moja ostatnia szansa ten kod, jak to nie pójdzie to chyba daje sobie spokój.

0

Nie wiem co Ty próbujesz zrobić, ale ja przy MinGW nie musiałem nic zmieniać w configu boosta. Napisz może co chcesz osiągnąć. Zbudować boosta, czy po prostu z niego skorzystać w swojej aplikacji?

0

Skorzystać w swojej aplikacji tak aby odpalił na tym MinGW bez tych upierdliwych błędów.

0

To nie są upierdliwe błędy i zupełnie źle się do tego zabierasz.
MUSISZ(nie ma innego wyjścia) ustawić w opcjach linkera, żeby dołączył te biblioteki z których korzystasz. Skoro w kodzie zdefiniowałeś makro(musi być przed dołączeniem jakiegokolwiek nagłówka z boosta) BOOST_THREAD_USE_LIB to musisz dołączyć te biblioteki, które Ci wcześniej napisałem.

Teraz sprawa wygląda tak: jak je masz gdzieś tam w folderze boost'a to się ciesz(pewnie nie masz, bo boost nie jest dostarczany z binarkami dla GCC).
Jak ich nie masz to musisz najpierw zbudować samego boost'a, nie jest to trudne, ale czasochłonne - mi zeszło ponad godzinę(sam proces budowania). Nie wiem czy bawisz się na win czy linuchu, więc rzucam opisem dla win, dla linucha też gdzieś tam jest: http://www.boost.org/doc/libs/1_49_0/more/getting_started/windows.html -> interesuje Cię paragraf 5.3

W miarę niedawno też się z tym męczyłem, więc chyba o niczym nie zapomniałem napisać.

0

Problem z boostem rozwiązany, dziękuję bardzo, ale problem który wcześniej tu wkleiłem w logach nadal się trzyma. http://wklej.to/eYpKY Wyczytałem już z czym jest powiązany jednak z sdk skopiowałem plik dbghelp.h i odpowiedniego liba również wkleiłem a błąd się nadal utrzymuje. Ma ktoś może Windows 7 32bit i mingw oraz czy może udostępnić pliki potrzebne do rozwiązania tego problemu. Chodzi o ten dbghelp.h i odpowiedniego liba.

1 użytkowników online, w tym zalogowanych: 0, gości: 1