質問: caffeのbuildで困っています. 環境はUbuntu15.10でCUDA7.5, cuDNNv3を用いています. ``` > $ make all -j4 [±master ●] CXX/LD -o .build_release/tools/upgrade_net_proto_text.bin CXX/LD -o .build_release/tools/compute_image_mean.bin CXX/LD -o .build_release/tools/finetune_net.bin CXX/LD -o .build_release/tools/caffe.bin CXX/LD -o .build_release/tools/convert_imageset.bin .build_release/tools/compute_image_mean.o: 関数 `std::string* google::MakeCheckOpString(int const&, int const&, char const*)' 内: compute_image_mean.cpp:(.text._ZN6google17MakeCheckOpStringIiiEEPSsRKT_RKT0_PKc[_ZN6google17MakeCheckOpStringIiiEEPSsRKT_RKT0_PKc]+0x50): `google::base::CheckOpMessageBuilder::NewString()' に対する定義されていない参照です .build_release/tools/compute_image_mean.o: 関数 `std::string* google::MakeCheckOpString(unsigned long const&, int const&, char const*)' 内: compute_image_mean.cpp:(.text._ZN6google17MakeCheckOpStringImiEEPSsRKT_RKT0_PKc[_ZN6google17MakeCheckOpStringImiEEPSsRKT_RKT0_PKc]+0x50): `google::base::CheckOpMessageBuilder::NewString()' に対する定義されていない参照です .build_release/tools/compute_image_mean.o: 関数 `main' 内: compute_image_mean.cpp:(.text.startup+0x168): `google::SetUsageMessage(std::string const&)' に対する定義されていない参照です compute_image_mean.cpp:(.text.startup+0x2a1): `google::protobuf::MessageLite::ParseFromString(std::string const&)' に対する定義されていない参照です compute_image_mean.cpp:(.text.startup+0x491): `google::protobuf::MessageLite::ParseFromString(std::string const&)' に対する定義されていない参照です .build_release/lib/libcaffe.so: `google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(int, std::string const&, google::protobuf::io::CodedOutputStream*)' に対する定義されていない参照です .build_release/lib/libcaffe.so: `google::protobuf::io::CodedOutputStream::WriteStringWithSizeToArray(std::string const&, unsigned char*)' に対する定義されていない参照です .build_release/lib/libcaffe.so: `cv::imread(cv::String const&, int)' に対する定義されていない参照です .build_release/lib/libcaffe.so: `google::protobuf::internal::WireFormatLite::ReadString(google::protobuf::io::CodedInputStream*, std::string*)' に対する定義されていない参照です .build_release/lib/libcaffe.so: `google::protobuf::Message::GetTypeName() const' に対する定義されていない参照です .build_release/lib/libcaffe.so: `google::protobuf::internal::StringTypeHandlerBase::Delete(std::string*)' に対する定義されていない参照です .build_release/lib/libcaffe.so: `google::protobuf::MessageLite::SerializeToString(std::string*) const' に対する定義されていない参照です .build_release/lib/libcaffe.so: `google::protobuf::MessageFactory::InternalRegisterGeneratedFile(char const*, void (*)(std::string const&))' に対する定義されていない参照です .build_release/lib/libcaffe.so: `cv::imencode(cv::String const&, cv::_InputArray const&, std::vector >&, std::vector > const&)' に対する定義されていない参照です .build_release/lib/libcaffe.so: `leveldb::DB::Open(leveldb::Options const&, std::string const&, leveldb::DB**)' に対する定義されていない参照です .build_release/lib/libcaffe.so: `google::protobuf::Message::DebugString() const' に対する定義されていない参照です .build_release/lib/libcaffe.so: `google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(int, std::string const&, google::protobuf::io::CodedOutputStream*)' に対する定義されていない参照です .build_release/lib/libcaffe.so: `google::protobuf::internal::StringTypeHandlerBase::New()' に対する定義されていない参照です .build_release/lib/libcaffe.so: `cv::imdecode(cv::_InputArray const&, int)' に対する定義されていない参照です .build_release/lib/libcaffe.so: `google::protobuf::internal::empty_string_' に対する定義されていない参照です .build_release/lib/libcaffe.so: `google::protobuf::internal::NameOfEnum(google::protobuf::EnumDescriptor const*, int)' に対する定義されていない参照です .build_release/lib/libcaffe.so: `google::protobuf::internal::WireFormatLite::WriteString(int, std::string const&, google::protobuf::io::CodedOutputStream*)' に対する定義されていない参照です .build_release/lib/libcaffe.so: `leveldb::Status::ToString() const' に対する定義されていない参照です .build_release/lib/libcaffe.so: `google::protobuf::DescriptorPool::FindFileByName(std::string const&) const' に対する定義されていない参照です .build_release/lib/libcaffe.so: `google::protobuf::internal::WireFormatLite::ReadBytes(google::protobuf::io::CodedInputStream*, std::string*)' に対する定義されていない参照です .build_release/lib/libcaffe.so: `google::protobuf::Message::InitializationErrorString() const' に対する定義されていない参照です collect2: error: ld returned 1 exit status Makefile:607: recipe for target '.build_release/tools/compute_image_mean.bin' failed make: *** [.build_release/tools/compute_image_mean.bin] Error 1 make: *** 未完了のジョブを待っています.... .build_release/lib/libcaffe.so: `google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(int, std::string const&, google::protobuf::io::CodedOutputStream*)' に対する定義されていない参照です .build_release/lib/libcaffe.so: `google::protobuf::io::CodedOutputStream::WriteStringWithSizeToArray(std::string const&, unsigned char*)' に対する定義されていない参照です caffe.cpp:(.text.startup+0x83): `google::SetUsageMessage(std::string const&)' に対する定義されていない参照です .build_release/lib/libcaffe.so: `google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(int, std::string const&, google::protobuf::io::CodedOutputStream*)' に対する定義されていない参照です .build_release/lib/libcaffe.so: `google::protobuf::io::CodedOutputStream::WriteStringWithSizeToArray(std::string const&, unsigned char*)' に対する定義されていない参照です .build_release/lib/libcaffe.so: `cv::imread(cv::String const&, int)' に対する定義されていない参照です .build_release/lib/libcaffe.so: `google::protobuf::internal::WireFormatLite::ReadString(google::protobuf::io::CodedInputStream*, std::string*)' に対する定義されていない参照です .build_release/lib/libcaffe.so: `google::protobuf::Message::GetTypeName() const' に対する定義されていない参照です .build_release/lib/libcaffe.so: `google::protobuf::internal::StringTypeHandlerBase::Delete(std::string*)' に対する定義されていない参照です .build_release/lib/libcaffe.so: `google::protobuf::MessageLite::SerializeToString(std::string*) const' に対する定義されていない参照です .build_release/lib/libcaffe.so: `google::protobuf::MessageFactory::InternalRegisterGeneratedFile(char const*, void (*)(std::string const&))' に対する定義されていない参照です .build_release/lib/libcaffe.so: `cv::imencode(cv::String const&, cv::_InputArray const&, std::vector >&, std::vector > const&)' に対する定義されていない参照です .build_release/lib/libcaffe.so: `leveldb::DB::Open(leveldb::Options const&, std::string const&, leveldb::DB**)' に対する定義されていない参照です .build_release/lib/libcaffe.so: `google::protobuf::M .build_release/lib/libcaffe.so: `google::protobuf::Message::InitializationErrorString() const' に対する定義されていない参照です collect2: error: ld returned 1 exit status Makefile:607: recipe for target '.build_release/tools/convert_imageset.bin' failed make: *** [.build_release/tools/convert_imageset.bin] Error 1 ``` インターネットで検索しても解決しておりません. よろしくお願いします.
回答: 結局,dockerを使うようにしています. 最近,nvidiaがnvidia-dockerを開発しているので, それを使うとスムーズに構築できました. [参考URL] * nvidia-coker https://github.com/NVIDIA/nvidia-docker