Merical / SSF-SLAM

Feature-based VSLAM system with self-supervised feature detection
Other
4 stars 1 forks source link

build error ../lib/libLCHP_SLAM_DBoW3.so: undefined reference to 'xxx' #1

Open Hhsssssss opened 4 years ago

Hhsssssss commented 4 years ago

你好,我的CUDA是10.1,Libtorch的安装方式是

git clone --recursive https://github.com/pytorch/pytorch -b v1.3.1
cd pytorch
mkdir build
cd build
cmake .. -DBUILD_CUSTOM_PROTOBUF=OFF -DCMAKE_INSTALL_PREFIX=/PATH/TO/libtorch -DBUILD_TORCH=ON -DBUILD_SHARED_LIBS=ON -DBUILD_PYTHON=OFF
make -j$(nproc)
make install

安装完README里相应的依赖后,修改 build.sh 里的torch的路径

cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/home/ss/Depandencies/LibTorch/pytorch/libtorch/share/cmake/Torch

最后编译build.sh,出现如下error

[100%] Linking CXX executable ../LCHP/rgbd_lchp
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `onnx_torch::ModelProto::ModelProto(onnx_torch::ModelProto const&)'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `torch::ModelDef::~ModelDef()'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `dger_'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `onnx_torch::TensorProto* google::protobuf::Arena::CreateMaybeMessage<onnx_torch::TensorProto>(google::protobuf::Arena*)'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `scopy_'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `sger_'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `onnx_torch::TypeProto_Tensor* google::protobuf::Arena::CreateMaybeMessage<onnx_torch::TypeProto_Tensor>(google::protobuf::Arena*)'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `torch::ModelDef::GetMetadata() const'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `dcopy_'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `sgemm_'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `MKL_Set_Dynamic'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `onnx_torch::OperatorSetIdProto* google::protobuf::Arena::CreateMaybeMessage<onnx_torch::OperatorSetIdProto>(google::protobuf::Arena*)'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `fbgemm::fbgemmSupportedCPU()'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `onnx_torch::ValueInfoProto* google::protobuf::Arena::CreateMaybeMessage<onnx_torch::ValueInfoProto>(google::protobuf::Arena*)'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `onnx_torch::TensorShapeProto_Dimension::clear_value()'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `dswap_'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `onnx_torch::GraphProto* google::protobuf::Arena::CreateMaybeMessage<onnx_torch::GraphProto>(google::protobuf::Arena*)'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `cpuinfo_initialize'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `onnx_torch::AttributeProto* google::protobuf::Arena::CreateMaybeMessage<onnx_torch::AttributeProto>(google::protobuf::Arena*)'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `onnx_torch::TensorShapeProto* google::protobuf::Arena::CreateMaybeMessage<onnx_torch::TensorShapeProto>(google::protobuf::Arena*)'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `void fbgemm::Quantize<int>(float const*, int*, int, fbgemm::TensorQuantizationParams const&)'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `daxpy_'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `onnx_torch::_TensorProto_default_instance_'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `onnx_torch::_TypeProto_default_instance_'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `onnx_torch::TypeProto* google::protobuf::Arena::CreateMaybeMessage<onnx_torch::TypeProto>(google::protobuf::Arena*)'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `onnx_torch::NodeProto* google::protobuf::Arena::CreateMaybeMessage<onnx_torch::NodeProto>(google::protobuf::Arena*)'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `torch::ModelDef::ModelDef()'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `dgemv_'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `void fbgemm::Quantize<signed char>(float const*, signed char*, int, fbgemm::TensorQuantizationParams const&)'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `onnx_torch::TypeProto::clear_value()'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `dscal_'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `MKL_Get_Max_Threads'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `dgemm_'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `onnx_torch::_GraphProto_default_instance_'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `cv::cuda::DescriptorMatcher::createBFMatcher(int)'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `cpuinfo_isa'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `onnx_torch::AttributeProto_AttributeType_IsValid(int)'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `onnx_torch::ModelProto::~ModelProto()'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `onnx_torch::_TypeProto_Tensor_default_instance_'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `MKL_Set_Num_Threads'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `saxpy_'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `void fbgemm::Quantize<unsigned char>(float const*, unsigned char*, int, fbgemm::TensorQuantizationParams const&)'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `sgemv_'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `ddot_'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `onnx_torch::TensorShapeProto_Dimension* google::protobuf::Arena::CreateMaybeMessage<onnx_torch::TensorShapeProto_Dimension>(google::protobuf::Arena*)'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `onnx_torch::_TensorShapeProto_default_instance_'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `torch::_RecordRef_default_instance_'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `torch::_ModuleDef_default_instance_'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `onnx_torch::ModelProto::ModelProto()'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `sscal_'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `sswap_'
../lib/libLCHP_SLAM_DBoW3.so: undefined reference to `cblas_sdot'
collect2: error: ld returned 1 exit status
CMakeFiles/rgbd_lchp.dir/build.make:183: recipe for target '../LCHP/rgbd_lchp' failed
make[2]: *** [../LCHP/rgbd_lchp] Error 1
CMakeFiles/Makefile2:97: recipe for target 'CMakeFiles/rgbd_lchp.dir/all' failed
make[1]: *** [CMakeFiles/rgbd_lchp.dir/all] Error 2
Makefile:103: recipe for target 'all' failed
make: *** [all] Error 2

我google了一下,说是安装编译Libtorch的时候要用conda? 请问这个你知道怎么解决吗,十分感谢@Merical

Merical commented 4 years ago

image Have you changed the Torch_DIR in CMakeLists.txt?