因為最近還是很忙,所以就常話短說。
拿 GCC 4.7 當編譯 ports 用的 compiler 去 build boost-1.45.0 的時候,會遇上這個錯誤:
./boost/config/requires_threads.hpp:29:4: error: #error "Threading support unavaliable: it has been explicitly disabled with BOOST_DISABLE_THREADS"
遇到的話,請直接殺進 devel/boost-libs/work/boost_1_45_0/boost/config/stdlib 改libstdcpp3.hpp。
改法在 boost 官方的 tickets 裡已經有人提供了:https://svn.boost.org/trac/boost/attachment/ticket/6165/libstdcpp3.hpp.patch
1 2 3 4 5 6 7 8 9 10 11 12 |
--- libstdcpp3.hpp.orig 2010-10-01 17:19:44.000000000 +0800 +++ libstdcpp3.hpp 2012-03-21 05:20:04.000000000 +0800 @@ -31,7 +31,8 @@ #ifdef __GLIBCXX__ // gcc 3.4 and greater: # if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \ - || defined(_GLIBCXX__PTHREADS) + || defined(_GLIBCXX__PTHREADS) \ + || defined(_GLIBCXX_HAS_GTHREADS) // // If the std lib has thread support turned on, then turn it on in Boost // as well. We do this because some gcc-3.4 std lib headers define _REENTANT |
簡單說就是補個 defined(_GLIBCXX_HAS_GTHREADS) 的判斷而已。
我自己是會先在 devel/boost-libs 裡 make clean 再 make configure 一遍才進去改,然後才 make install。
至於能不能遇到錯誤才去改,改完繼續 make install,我就不確定了。
題外話...
真正的大學英文,或說托福考試用的英文,對高職背景的人來說真的是頗吃力。
即便以前竹北高中那邊刻意排了比別家高工還要多的英文課,其實跟普通科的英文程度還是差異懸殊。
至於英聽能力,高中/高職時代學校會話課指定的那本「大家說英語」根本是烏龜爬,每個字都聽得到也不用太高興。
這半年多來的感想就以上三行。