я собрал свою библиотеку наддува с помощью bjam, а затем переместил все файлы .a
в c:\Server\libs\boost_1_46_0\lib
, если я хочу скомпилировать свою программу, возникает ошибка:
команда компиляции
g++ -Ic:\Server\libs\boost_1_46_0\ -Lc:\Server\libs\boost_1_46_0\lib\ -lboost_thread-mgw45-mt-1_46 -o try1 try1.cpp
ошибки
C:\Users\FEHERG~1\AppData\Local\Temp\ccB46To7.o:try1.cpp:(.text+0xe9): undefined
reference to `_imp___ZN5boost6thread4joinEv'
C:\Users\FEHERG~1\AppData\Local\Temp\ccB46To7.o:try1.cpp:(.text+0x120): undefine
d reference to `_imp___ZN5boost6threadD1Ev'
C:\Users\FEHERG~1\AppData\Local\Temp\ccB46To7.o:try1.cpp:(.text+0x138): undefine
d reference to `_imp___ZN5boost6threadD1Ev'
C:\Users\FEHERG~1\AppData\Local\Temp\ccB46To7.o:try1.cpp:(.text$_ZN5boost11this_
thread18interruptible_waitEm[boost::this_thread::interruptible_wait(unsigned lon
g)]+0x40): undefined reference to `_imp___ZN5boost11this_thread18interruptible_w
aitEPvNS_6detail7timeoutE'
C:\Users\FEHERG~1\AppData\Local\Temp\ccB46To7.o:try1.cpp:(.text$_ZN5boost6thread
C1IPFvvEEET_NS_10disable_ifINS_14is_convertibleIRS4_NS_6detail13thread_move_tIS4
_EEEEPNS0_5dummyEE4typeE[boost::thread::thread<void (*)()>(void (*)(), boost::di
sable_if<boost::is_convertible<void (*&)(), boost::detail::thread_move_t<void (*
)()> >, boost::thread::dummy*>::type)]+0x23): undefined reference to `_imp___ZN5
boost6thread12start_threadEv'
collect2: ld returned 1 exit status
Кто-нибудь может мне помочь, в чем проблема в этой проблеме?
Я следовал этому уроку: http://antonym.org/2009/05/threading-with-boost---part-i-creating-threads.html
, так что это источник: http://pastebin.com/YqCPLNwU
ОБНОВЛЕНИЕ:
Я думаю, что ошибка не выстилает библиотеку, ошибка в библиотеке.я построил его с bjam с toolchain=gcc multithread
опциями.
ОБНОВЛЕНИЕ
вот objdump http://pastebin.com/4fpqYb7d
ОБНОВЛЕНИЕ
Я обнаружил, что проблема в том, что компоновщик хочет связать с динамическим связыванием или что-то вроде этого.
Проблемы с блоками кода, MinGW, Boost и статическим связыванием
там "Джек Келли" говорит, что мне нужно добавить #define BOOST_THREAD_USE_LIB
в начале моего исходного файла.но это не помогает мне.как я могу связать библиотеку статически?(-static
тоже не помогло)