Building caffe2 failed following "Custom Anaconda Install".
- conda create -n caffe2 && source activate caffe2
- conda install -y protobuf (3.4) or conda install -y -c conda-forge protobuf (3.5.1)
- git clone --recusive ...
- mkdir build && cd build
- cmake -DUSE_CUDA=ON -DUSE_LEVELDB=ON -DCMAKE_PREFIX_PATH=~ /Prog/anaconda2/envs/caffe2 -DCMAKE_INSTALL_PREFIX=~ /Prog/anaconda2/envs/caffe2 ..
- make install
- compile failed [75% ] ‘google::protobuf::internal::fixed_address_empty_string[abi:cxx11]’未定义的引用
System information
- Operating system: Ubuntu 16.04
- Compiler version: gcc 5.4.0
- CMake version: cmake 3.5.1
- CMake arguments: cmake -DUSE_CUDA=ON -DUSE_LEVELDB=ON -DCMAKE_PREFIX_PATH=~ /Prog/anaconda2/envs/caffe2 -DCMAKE_INSTALL_PREFIX=~ /Prog/anaconda2/envs/caffe2 ..
- Relevant libraries/versions (e.g. CUDA): cuda 8.0
CMake summary output
******** Summary ********
<please paste summary output here>
[ 75%] Building CXX object caffe2/CMakeFiles/reshape_op_gpu_test.dir/operators/reshape_op_gpu_test.cc.o
[ 75%] Linking CXX executable ../bin/reshape_op_gpu_test
CMakeFiles/reshape_op_gpu_test.dir/operators/reshape_op_gpu_test.cc.o:在函数‘caffe2::ReshapeOpGPUTest_testReshapeWithScalar_Test::TestBody()’中:
reshape_op_gpu_test.cc:(.text+0x1725):对‘google::protobuf::internal::fixed_address_empty_string[abi:cxx11]’未定义的引用
../lib/libcaffe2.so:对‘google::protobuf::internal::WireFormatLite::WriteBytes(int, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, google::protobuf::io::CodedOutputStream*)’未定义的引用
../lib/libcaffe2_gpu.so:对‘google::protobuf::MessageLite::SerializeAsStringabi:cxx11 const’未定义的引用
../lib/libcaffe2.so:对‘google::SetUsageMessage(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&)’未定义的引用
../lib/libcaffe2.so:对‘google::protobuf::Message::DebugStringabi:cxx11 const’未定义的引用
../lib/libcaffe2.so:对‘google::protobuf::MessageFactory::InternalRegisterGeneratedFile(char const*, void ()(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&))’未定义的引用
../lib/libcaffe2_gpu.so:对‘google::protobuf::Message::ShortDebugStringabi:cxx11 const’未定义的引用
../lib/libcaffe2.so:对‘google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(int, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, google::protobuf::io::CodedOutputStream)’未定义的引用
../lib/libcaffe2_gpu.so:对‘google::protobuf::internal::ParseNamedEnum(google::protobuf::EnumDescriptor const*, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, int*)’未定义的引用
../lib/libcaffe2.so:对‘google::protobuf::internal::WireFormatLite::ReadBytes(google::protobuf::io::CodedInputStream*, std::__cxx11::basic_string<char, std::char_traits, std::allocator >)’未定义的引用
../lib/libcaffe2_gpu.so:对‘google::protobuf::MessageLite::ParseFromString(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&)’未定义的引用
../lib/libcaffe2.so:对‘google::protobuf::Message::GetTypeNameabi:cxx11 const’未定义的引用
../lib/libcaffe2.so:对‘google::protobuf::internal::OnShutdownDestroyString(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const)’未定义的引用
../lib/libcaffe2.so:对‘google::protobuf::io::CodedOutputStream::WriteStringWithSizeToArray(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, unsigned char*)’未定义的引用
../lib/libcaffe2_gpu.so:对‘google::FlagRegisterer::FlagRegisterer<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >(char const*, char const*, char const*, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >)’未定义的引用
../lib/libcaffe2.so:对‘google::protobuf::Message::InitializationErrorStringabi:cxx11 const’未定义的引用
../lib/libcaffe2_gpu.so:对‘google::base::CheckOpMessageBuilder::NewStringabi:cxx11’未定义的引用
../lib/libcaffe2.so:对‘google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(int, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, google::protobuf::io::CodedOutputStream*)’未定义的引用
../lib/libcaffe2.so:对‘google::protobuf::internal::AssignDescriptors(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, google::protobuf::internal::MigrationSchema const*, google::protobuf::Message const* const*, unsigned int const*, google::protobuf::MessageFactory*, google::protobuf::Metadata*, google::protobuf::EnumDescriptor const**, google::protobuf::ServiceDescriptor const**)’未定义的引用
../lib/libcaffe2.so:对‘google::protobuf::internal::WireFormatLite::WriteString(int, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, google::protobuf::io::CodedOutputStream*)’未定义的引用
../lib/libcaffe2.so:对‘google::protobuf::TextFormat::ParseFromString(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, google::protobuf::Message*)’未定义的引用
../lib/libcaffe2.so:对‘google::protobuf::MessageLite::SerializeToString(std::__cxx11::basic_string<char, std::char_traits, std::allocator >*) const’未定义的引用
collect2: error: ld returned 1 exit status
caffe2/CMakeFiles/reshape_op_gpu_test.dir/build.make:126: recipe for target 'bin/reshape_op_gpu_test' failed
make[2]: *** [bin/reshape_op_gpu_test] Error 1
CMakeFiles/Makefile2:1341: recipe for target 'caffe2/CMakeFiles/reshape_op_gpu_test.dir/all' failed
make[1]: *** [caffe2/CMakeFiles/reshape_op_gpu_test.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2