私は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は。しかし、私はまだこれを行った後、同じエラーが発生します。
ここで何が問題になるのか他に誰かが提案していますか?ありがとうございました。
Cmake> = 3.7ですか? cf http://stackoverflow.com/q/42123509/2799037 – usr1234567
はい、私はCMakeバージョン2.8.12.2を持っています。しかし、良い考え。 – sealonging314
それは問題です! – usr1234567