歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

BCB6.0編譯boost 1.39.0的thread庫

問題
在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&);

備注:編譯開源項目,不到萬不得已最好不要去修改源碼。

Copyright © Linux教程網 All Rights Reserved