boost1.52.0 1.53.0 Mingw-w64 gcc8.2 compile error boost thread shared compile error

解决办法fixed by:interlocked.hpp

         swap boost_1_56_0\boost\detail\interlocked.hpp to boost_1_52_0.

花了我两天时间才解决。

 

.\b2 -j8 --build-dir=.\tmp threading=multi link=shared address-model=64 to
olset=gcc --with-thread --with-chrono --with-date_time

...patience...
...found 1240 targets...
...updating 8 targets...
gcc.link.dll tmp\boost\bin.v2\libs\thread\build\gcc-mingw-8.2.0\debug\address-model-64\threading-multi\libboost_thread-mgw82-mt-d-1_53.dll.a
tmp\boost\bin.v2\libs\thread\build\gcc-mingw-8.2.0\debug\address-model-64\threading-multi\win32\thread.o: In function boost::detail::win32::interlocked_bit_test_and_set(long*, long)': C:\Users\AaronZhang\Desktop\boost_1_53_0/./boost/thread/win32/thread_primitives.hpp:408: undefined reference toInterlockedCompareExchange'
tmp\boost\bin.v2\libs\thread\build\gcc-mingw-8.2.0\debug\address-model-64\threading-multi\win32\thread.o: In function boost::detail::intrusive_ptr_add_ref(boost::detail::thread_data_base*)': C:\Users\AaronZhang\Desktop\boost_1_53_0/./boost/thread/win32/thread_data.hpp:130: undefined reference toInterlockedIncrement'
tmp\boost\bin.v2\libs\thread\build\gcc-mingw-8.2.0\debug\address-model-64\threading-multi\win32\thread.o: In function boost::detail::intrusive_ptr_release(boost::detail::thread_data_base*)': C:\Users\AaronZhang\Desktop\boost_1_53_0/./boost/thread/win32/thread_data.hpp:135: undefined reference toInterlockedDecrement'
tmp\boost\bin.v2\libs\thread\build\gcc-mingw-8.2.0\debug\address-model-64\threading-multi\win32\thread.o: In function boost::detail::interlocked_read_acquire(long volatile*)': C:\Users\AaronZhang\Desktop\boost_1_53_0/./boost/thread/win32/interlocked_read.hpp:61: undefined reference toInterlockedCompareExchange'
tmp\boost\bin.v2\libs\thread\build\gcc-mingw-8.2.0\debug\address-model-64\threading-multi\win32\thread.o: In function boost::detail::interlocked_read_acquire(void* volatile*)': C:\Users\AaronZhang\Desktop\boost_1_53_0/./boost/thread/win32/interlocked_read.hpp:65: undefined reference toInterlockedCompareExchangePointer'
tmp\boost\bin.v2\libs\thread\build\gcc-mingw-8.2.0\debug\address-model-64\threading-multi\win32\thread.o: In function boost::detail::interlocked_write_release(long volatile*, long)': C:\Users\AaronZhang\Desktop\boost_1_53_0/./boost/thread/win32/interlocked_read.hpp:69: undefined reference toInterlockedExchange'
tmp\boost\bin.v2\libs\thread\build\gcc-mingw-8.2.0\debug\address-model-64\threading-multi\win32\thread.o: In function boost::detail::basic_timed_mutex::mark_waiting_and_try_lock(long&)': C:\Users\AaronZhang\Desktop\boost_1_53_0/./boost/thread/win32/basic_timed_mutex.hpp:97: undefined reference toInterlockedCompareExchange'
tmp\boost\bin.v2\libs\thread\build\gcc-mingw-8.2.0\debug\address-model-64\threading-multi\win32\thread.o: In function boost::detail::basic_timed_mutex::clear_waiting_and_try_lock(long&)': C:\Users\AaronZhang\Desktop\boost_1_53_0/./boost/thread/win32/basic_timed_mutex.hpp:113: undefined reference toInterlockedCompareExchange'
tmp\boost\bin.v2\libs\thread\build\gcc-mingw-8.2.0\debug\address-model-64\threading-multi\win32\thread.o: In function boost::detail::basic_timed_mutex::unlock()': C:\Users\AaronZhang\Desktop\boost_1_53_0/./boost/thread/win32/basic_timed_mutex.hpp:220: undefined reference toInterlockedExchangeAdd'
tmp\boost\bin.v2\libs\thread\build\gcc-mingw-8.2.0\debug\address-model-64\threading-multi\win32\thread.o: In function boost::detail::basic_timed_mutex::get_event()': C:\Users\AaronZhang\Desktop\boost_1_53_0/./boost/thread/win32/basic_timed_mutex.hpp:243: undefined reference toInterlockedCompareExchangePointer'
tmp\boost\bin.v2\libs\thread\build\gcc-mingw-8.2.0\debug\address-model-64\threading-multi\win32\thread.o: In function boost::detail::intrusive_ptr_release(boost::detail::basic_cv_list_entry*)': C:\Users\AaronZhang\Desktop\boost_1_53_0/./boost/thread/win32/condition_variable.hpp:115: undefined reference toInterlockedDecrement'
tmp\boost\bin.v2\libs\thread\build\gcc-mingw-8.2.0\debug\address-model-64\threading-multi\win32\thread.o: In function void boost::call_once<void (*)()>(boost::once_flag&, void (*)())': C:\Users\AaronZhang\Desktop\boost_1_53_0/./boost/thread/win32/once.hpp:158: undefined reference toInterlockedCompareExchange'
C:\Users\AaronZhang\Desktop\boost_1_53_0/./boost/thread/win32/once.hpp:174: undefined reference to InterlockedIncrement' C:\Users\AaronZhang\Desktop\boost_1_53_0/./boost/thread/win32/once.hpp:177: undefined reference toInterlockedExchange'
C:\Users\AaronZhang\Desktop\boost_1_53_0/./boost/thread/win32/once.hpp:207: undefined reference to InterlockedIncrement' C:\Users\AaronZhang\Desktop\boost_1_53_0/./boost/thread/win32/once.hpp:191: undefined reference toInterlockedExchange'
collect2.exe: error: ld returned 1 exit status

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值