2017-02-17 6 views
0

私はBoost 1.63.0をローカルに、Caffe(バージョンrc3)をインストールしました。私は現在、CMakeのを使用して、いくつかのカフェのコードをコンパイルしようとしていますが、私は、次のリンカエラーを取得:Caffeコードをコンパイルするときの定義されていないブーストスレッドのリファレンス

/home/local/boost_1_63_0/boost/thread/pthread/once_atomic.hpp:145: 
undefined reference to `boost::thread_detail::enter_once_region(boost::once_flag&)' 

/home/local/boost_1_63_0/boost/thread/pthread/once_atomic.hpp:157: 
undefined reference to `boost::thread_detail::commit_once_region(boost::once_flag&)' 

/home/local/boost_1_63_0/boost/thread/pthread/once_atomic.hpp:153: 
undefined reference to `boost::thread_detail::rollback_once_region(boost::once_flag&)' 

libcpp_stuff_library.a(Log.cpp.o): In function `logging::get_log()': 
/home/local/boost_1_63_0/boost/thread/pthread/once_atomic.hpp:145: 
undefined reference to `boost::thread_detail::enter_once_region(boost::once_flag&)' 

/home/local/boost_1_63_0/boost/thread/pthread/once_atomic.hpp:157: 
undefined reference to `boost::thread_detail::commit_once_region(boost::once_flag&)' 

/home/local/boost_1_63_0/boost/thread/pthread/once_atomic.hpp:153: 
undefined reference to `boost::thread_detail::rollback_once_region(boost::once_flag&)' 

collect2: error: ld returned 1 exit status 

私の最初の考えは、私は何とか私のcmakeのファイルに間違った方法を後押しするためのリンクだということです。

set(BOOST_ROOT "/home/local/boost_1_63_0") 
find_package(Boost 1.6.3 REQUIRED COMPONENTS filesystem system thread) 

私の第二の考えは、これはpthreadsのとは何かを持っていたということでしたので、私はこのStackOverflowの答えを使用して、私のCMakeLists.txt内のpthreadにリンクされている:今、CMakeLists.txtに、私が持っているcmake and libpthreadは。しかし、私はまだこれを行った後、同じエラーが発生します。

ここで何が問題になるのか他に誰かが提案していますか?ありがとうございました。

+0

Cmake> = 3.7ですか? cf http://stackoverflow.com/q/42123509/2799037 – usr1234567

+0

はい、私はCMakeバージョン2.8.12.2を持っています。しかし、良い考え。 – sealonging314

+0

それは問題です! – usr1234567

答えて

0

ローカルにインストールされたBoost 1.63を使用してCaffeをコンパイルすると、CMake 3.7のソースコードがビルドされました。同様の問題が発生しました。 Caffe 1.0CMakeフォルダがDependencies.cmakeCaffeBoost 1.45ないBoost 1.62またはBoost 1.63Python 3.5.3Ubuntu 17.04ランチパッド・配布ファイルを探しているが含まれています。ローカルにインストールされたファイルlibboost_python.soまたはのlibboost_python.so.1.63.0は、フォルダ/usr/lib/x86_64-linux-gnulibboost_python-py35.soのランチパッド配布ファイルとは異なる名前が付けられています。

関連する問題