我在本地安装了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文件中的错误方式。现在,在cmakelists.txt中,我有:
set(BOOST_ROOT "/home/local/boost_1_63_0")
find_package( Boost 1.6.3 REQUIRED COMPONENTS filesystem system thread )
我的第二个想法是,这与pthreads有关,因此我使用此stackoverflow答案链接到我的cmakelists.txt中的pthreads:cmake和libpthread。但是,这样做后我仍然会遇到相同的错误。
有人对这里的问题有其他建议吗?谢谢。
使用本地安装的Boost 1.63
编译Caffe
时,源代码构建,使用CMake 3.7
,我遇到了类似的问题。Caffe 1.0
CMake
文件夹包含Dependencies.cmake
,Caffe
正在寻找Boost 1.45
不是Boost 1.62
或Boost 1.63
和Python 3.5.3
CC_11 Ubuntu 17.04
启动板分发文件。文件夹中的本地安装的文件libboost_python.so
或libboost_python.so.1.63.0
与文件夹/usr/lib/x86_64-linux-gnu
libboost_python-py35.so
中的启动板分发文件命名不同。