問題
在BCB6.0下編譯
使用如下指令編譯boost 1.39.0的thread庫,使用如下指令
bjam --toolset=borland-6.0 --with-thread stage debug threading=multi link=shared
進行編譯,將出現如下錯誤:
[C++ Error] thread.hpp(344): E2247 'thread::thread(thread &)' is not accessible
提示為thread::thread(thread &)收到保護,不可訪問。
解決辦法
修改源碼,將thread::thread(thread &)方法的訪問限制改為public。
打開文件V:\boost\boost_1_39_0\boost\thread\detail\thread.hpp
定位108行代碼,如下
class BOOST_THREAD_DECL thread
{
private:
//thread(thread&);
thread& operator=(thread&);
將thread(thread&);方法注釋,並將該方法的聲明放到public處,如代碼146行,如下
public:
thread();
~thread();
thread(thread&);
備注:編譯開源項目,不到萬不得已最好不要去修改源碼。