dicecco1 / fpga_caffe

Other
119 stars 51 forks source link

compile erro "/bin/ld: cannot find -lxilinxopencl..." #5

Closed JulyJohn closed 6 years ago

JulyJohn commented 7 years ago

I'm using centos7 and SDAccel 2017.1. When I want to compile following your instructs in https://github.com/dicecco1/fpga_caffe/issues/3#issuecomment-321656459

After command "make all", I got a problem like this :

...
CXX src/gtest/gtest-all.cpp
LD -o .build_release/lib/libcaffe.so.1.0.0
/bin/ld: cannot find -lxilinxopencl
/bin/ld: cannot find -llmx6.0
/bin/ld: cannot find -lcblas
/bin/ld: cannot find -latlas
collect2: error: ld returned 1 exit status
make: *** [.build_release/lib/libcaffe.so.1.0.0] Error 1

So, where shall I found the lxilinxopencl?

or could you please give a more detailed installation tutorial, such as how did you modify your Makefile.config ?

dicecco1 commented 7 years ago

Make sure you source the settings.sh file in the SDAccel install directory, the Makefile depends on the environment variables being set from that script.

Also in Centos 7 cblas and atlas require symbolic links to I think satlas and tatlas because the naming scheme changed. I can't remember exactly what the symbolic links need to be since most of my builds have been done with Centos 6.

Also, if you want to build some of the standalone FPGA tests, you can run make testfpga which will build the FPGA tests. Some of these might fail depending on what the exponent and mantissa settings are in include/fpga_caffe/cpfp.hpp though it's not indicative that there will actually be an accuracy drop.

JulyJohn commented 7 years ago

Hi, @dicecco1 thanks for your reply :-)

I thought I have solved the prolem above. But when the compile process almost comes to an end, I got an erro like this:

CXX .build_release/src/caffe/proto/caffe.pb.cc
AR -o .build_release/lib/libcaffe.a
LD -o .build_release/lib/libcaffe.so.1.0.0
CXX/LD -o .build_release/tools/caffe.bin
CXX/LD -o .build_release/tools/compute_image_mean.bin
CXX/LD -o .build_release/tools/convert_imageset.bin
CXX/LD -o .build_release/tools/device_query.bin
CXX/LD -o .build_release/tools/extract_features.bin
CXX/LD -o .build_release/tools/finetune_net.bin
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlOutputBufferCreateFile@LIBXML2_2.4.30'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlNodeGetContent@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::WireFormatLite::ReadString(google::protobuf::io::CodedInputStream*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >*)'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlNewChild@LIBXML2_2.4.30'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlNewDocNode@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::io::CodedInputStream::~CodedInputStream()'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::Message::GetTypeName() const'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::StringTypeHandlerBase::Delete(std::basic_string<char, std::char_traits<char>, std::allocator<char> >*)'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::kEmptyString'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlParseCharEncoding@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::MessageFactory::InternalRegisterGeneratedFile(char const*, void (*)(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&))'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlParseFile@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::io::CodedInputStream::default_recursion_limit_'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlSearchNsByHref@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::Message::DebugString() const'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::io::CodedInputStream::BytesUntilLimit() const'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::WireFormatLite::WriteBytes(int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, google::protobuf::io::CodedOutputStream*)'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlFindCharEncodingHandler@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::StringTypeHandlerBase::New()'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlSaveFormatFileTo@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::MessageLite::ParseFromString(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlParseMemory@LIBXML2_2.4.30'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlFree@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::NameOfEnum(google::protobuf::EnumDescriptor const*, int)'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlDocGetRootElement@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::GoogleOnceInitImpl(long*, google::protobuf::Closure*)'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlFreeDoc@LIBXML2_2.4.30'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlNewNs@LIBXML2_2.4.30'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlNewDoc@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::WireFormatLite::WriteString(int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, google::protobuf::io::CodedOutputStream*)'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::DescriptorPool::FindFileByName(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::WireFormatLite::ReadBytes(google::protobuf::io::CodedInputStream*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >*)'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::Message::InitializationErrorString() const'
collect2: ld returned 1 exit status
make: *** [.build_release/tools/finetune_net.bin] Error 1
make: *** Waiting for unfinished jobs....
.build_release/tools/convert_imageset.o: In function `main':
convert_imageset.cpp:(.text.startup+0x7fe): undefined reference to `google::protobuf::MessageLite::SerializeToString(std::basic_string<char, std::char_traits<char>, std::allocator<char> >*) const'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlOutputBufferCreateFile@LIBXML2_2.4.30'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlNodeGetContent@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::WireFormatLite::ReadString(google::protobuf::io::CodedInputStream*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >*)'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlNewChild@LIBXML2_2.4.30'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlNewDocNode@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::io::CodedInputStream::~CodedInputStream()'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::Message::GetTypeName() const'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::StringTypeHandlerBase::Delete(std::basic_string<char, std::char_traits<char>, std::allocator<char> >*)'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::kEmptyString'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlParseCharEncoding@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::MessageFactory::InternalRegisterGeneratedFile(char const*, void (*)(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&))'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlParseFile@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::io::CodedInputStream::default_recursion_limit_'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlSearchNsByHref@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::Message::DebugString() const'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::io::CodedInputStream::BytesUntilLimit() const'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::WireFormatLite::WriteBytes(int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, google::protobuf::io::CodedOutputStream*)'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlFindCharEncodingHandler@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::StringTypeHandlerBase::New()'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlSaveFormatFileTo@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::MessageLite::ParseFromString(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlParseMemory@LIBXML2_2.4.30'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlFree@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::NameOfEnum(google::protobuf::EnumDescriptor const*, int)'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlDocGetRootElement@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::GoogleOnceInitImpl(long*, google::protobuf::Closure*)'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlFreeDoc@LIBXML2_2.4.30'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlNewNs@LIBXML2_2.4.30'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlNewDoc@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::WireFormatLite::WriteString(int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, google::protobuf::io::CodedOutputStream*)'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::DescriptorPool::FindFileByName(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::WireFormatLite::ReadBytes(google::protobuf::io::CodedInputStream*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >*)'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::Message::InitializationErrorString() const'
collect2: ld returned 1 exit status
make: *** [.build_release/tools/convert_imageset.bin] Error 1
.build_release/tools/extract_features.o: In function `int feature_extraction_pipeline<float>(int, char**)':
extract_features.cpp:(.text._Z27feature_extraction_pipelineIfEiiPPc[int feature_extraction_pipeline<float>(int, char**)]+0xb8a): undefined reference to `google::protobuf::internal::kEmptyString'
extract_features.cpp:(.text._Z27feature_extraction_pipelineIfEiiPPc[int feature_extraction_pipeline<float>(int, char**)]+0x117b): undefined reference to `google::protobuf::MessageLite::SerializeToString(std::basic_string<char, std::char_traits<char>, std::allocator<char> >*) const'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlOutputBufferCreateFile@LIBXML2_2.4.30'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlNodeGetContent@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::WireFormatLite::ReadString(google::protobuf::io::CodedInputStream*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >*)'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlNewChild@LIBXML2_2.4.30'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlNewDocNode@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::io::CodedInputStream::~CodedInputStream()'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::Message::GetTypeName() const'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::StringTypeHandlerBase::Delete(std::basic_string<char, std::char_traits<char>, std::allocator<char> >*)'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlParseCharEncoding@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::MessageFactory::InternalRegisterGeneratedFile(char const*, void (*)(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&))'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlParseFile@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::io::CodedInputStream::default_recursion_limit_'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlSearchNsByHref@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::Message::DebugString() const'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::io::CodedInputStream::BytesUntilLimit() const'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::WireFormatLite::WriteBytes(int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, google::protobuf::io::CodedOutputStream*)'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlFindCharEncodingHandler@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::StringTypeHandlerBase::New()'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlSaveFormatFileTo@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::MessageLite::ParseFromString(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlParseMemory@LIBXML2_2.4.30'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlFree@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::NameOfEnum(google::protobuf::EnumDescriptor const*, int)'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlDocGetRootElement@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::GoogleOnceInitImpl(long*, google::protobuf::Closure*)'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlFreeDoc@LIBXML2_2.4.30'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlNewNs@LIBXML2_2.4.30'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlNewDoc@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::WireFormatLite::WriteString(int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, google::protobuf::io::CodedOutputStream*)'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::DescriptorPool::FindFileByName(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::WireFormatLite::ReadBytes(google::protobuf::io::CodedInputStream*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >*)'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::Message::InitializationErrorString() const'
collect2: ld returned 1 exit status
make: *** [.build_release/tools/extract_features.bin] Error 1
/.build_releaseusr//toolslib64//compute_image_mean.olibgstreamer:- 0.10.so.0In:  functionundefined  `referencemain 'to: 
`compute_image_mean.cppxmlOutputBufferCreateFile:@(LIBXML2_2.4.30.'text.startup
+/0x14fusr)/:lib64 /undefinedlibgstreamer -reference0.10.so.0 :to  undefined` reference to `xmlNodeGetContent@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::MessageLite::ParseFromString(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
compute_image_mean.cpp:(.text.startup+0x2c2): undefined referencegoogle::protobuf::internal::WireFormatLite::ReadString(google::protobuf::io::CodedInputStream*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >*) 'to
 /`usr/lib64google::protobuf::MessageLite::ParseFromString(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)/'libgstreamer
-/0.10.so.0usr:/ lib64undefined/ libgstreamerreference- 0.10.so.0to:  `undefinedxmlNewChild @referenceLIBXML2_2.4.30 'to
 /`usrxmlOutputBufferCreateFile/@lib64LIBXML2_2.4.30/'libgstreamer
-/0.10.so.0usr:/ lib64undefined/ libgstreamerreference- 0.10.so.0to:  `undefinedxmlNewDocNode @referenceLIBXML2_2.4.30 'to
 .`build_releasexmlNodeGetContent/@libLIBXML2_2.4.30/'libcaffe.so
:. build_releaseundefined/ libreference/ libcaffe.soto:  `undefined reference google::protobuf::io::CodedInputStream::~CodedInputStream()to' 
`.build_release/lib/libcaffe.sogoogle::protobuf::internal::WireFormatLite::ReadString(google::protobuf::io::CodedInputStream*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >*):' 
undefined/ usrreference/ lib64to/ libgstreamer`-0.10.so.0:google::protobuf::Message::GetTypeName() const 'undefined
 .referencebuild_release /tolib /`libcaffe.soxmlNewChild:@ LIBXML2_2.4.30undefined' 
reference/ usrto/ lib64`/libgstreamer-google::protobuf::internal::StringTypeHandlerBase::Delete(std::basic_string<char, std::char_traits<char>, std::allocator<char> >*)0.10.so.0':
 .undefinedbuild_release /referencelib /tolibcaffe.so :` xmlNewDocNodeundefined@ LIBXML2_2.4.30reference' 
to. build_release`/libgoogle::protobuf::internal::kEmptyString/'libcaffe.so
:/ usrundefined/ lib64reference/ libgstreamerto- 0.10.so.0`: undefinedgoogle::protobuf::io::CodedInputStream::~CodedInputStream() 'reference
 .tobuild_release /`libxmlParseCharEncoding/@libcaffe.soLIBXML2_2.4.30:' 
undefined. build_releasereference/ libto/ libcaffe.so`: google::protobuf::Message::GetTypeName() constundefined' 
reference. build_releaseto/ lib`/libcaffe.so: google::protobuf::MessageFactory::InternalRegisterGeneratedFile(char const*, void (*)(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&))undefined' 
reference/ usrto/ lib64`/libgstreamergoogle::protobuf::internal::StringTypeHandlerBase::Delete(std::basic_string<char, std::char_traits<char>, std::allocator<char> >*)-'0.10.so.0
:. build_releaseundefined/ libreference/ libcaffe.soto:  `undefinedxmlParseFile @referenceLIBXML2_2.4.30 'to
 .`build_release/google::protobuf::internal::kEmptyStringlib'/
libcaffe.so/:usr /undefinedlib64 /referencelibgstreamer -to0.10.so.0 :` undefinedgoogle::protobuf::io::CodedInputStream::default_recursion_limit_ 'reference
 /tousr /`lib64xmlParseCharEncoding/@libgstreamerLIBXML2_2.4.30-'0.10.so.0
:. build_releaseundefined/ libreference/ libcaffe.soto:  `undefinedxmlSearchNsByHref @referenceLIBXML2_2.4.30 'to
 .`build_release/lib/google::protobuf::MessageFactory::InternalRegisterGeneratedFile(char const*, void (*)(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&))libcaffe.so':
 /undefinedusr /referencelib64 /tolibgstreamer -`0.10.so.0:google::protobuf::Message::DebugString() const 'undefined
 .referencebuild_release /tolib /`libcaffe.soxmlParseFile:@ LIBXML2_2.4.30undefined' 
reference. build_releaseto/ lib`/libcaffe.sogoogle::protobuf::io::CodedInputStream::BytesUntilLimit() const:' 
undefined. build_releasereference/ libto/ libcaffe.so`: google::protobuf::io::CodedInputStream::default_recursion_limit_undefined' 
reference/ usrto/ lib64`/libgstreamer-0.10.so.0: undefinedgoogle::protobuf::internal::WireFormatLite::WriteBytes(int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, google::protobuf::io::CodedOutputStream*) 'reference
 /tousr /`lib64xmlSearchNsByHref/@libgstreamerLIBXML2_2.4.30-'0.10.so.0
:. build_releaseundefined/ libreference/ libcaffe.soto:  `undefinedxmlFindCharEncodingHandler @referenceLIBXML2_2.4.30 'to
 .`build_release/google::protobuf::Message::DebugString() constlib'/
libcaffe.so.:build_release /undefinedlib /referencelibcaffe.so :to  undefined` referencegoogle::protobuf::internal::StringTypeHandlerBase::New() 'to
 /`usr/google::protobuf::io::CodedInputStream::BytesUntilLimit() constlib64'/
libgstreamer.-build_release0.10.so.0/:lib /undefinedlibcaffe.so :reference  undefinedto  reference` xmlSaveFormatFileToto@ LIBXML2_2.4.30`'
.google::protobuf::internal::WireFormatLite::WriteBytes(int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, google::protobuf::io::CodedOutputStream*)build_release'/
lib//usrlibcaffe.so/:lib64 /undefinedlibgstreamer -reference0.10.so.0 :to  undefined` reference google::protobuf::MessageLite::ParseFromString(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)to' 
`/xmlFindCharEncodingHandlerusr@/LIBXML2_2.4.30lib64'/
libgstreamer.-build_release0.10.so.0/:lib /undefinedlibcaffe.so :reference  undefinedto  reference` xmlParseMemoryto@ LIBXML2_2.4.30`'
google::protobuf::internal::StringTypeHandlerBase::New()/'usr
//lib64usr//libgstreamerlib64-/0.10.so.0libgstreamer:- 0.10.so.0undefined:  referenceundefined  toreference  `toxmlFree @`LIBXML2_2.4.30xmlSaveFormatFileTo'@
LIBXML2_2.4.30.'build_release
//libusr//libcaffe.solib64:/ libgstreamerundefined- 0.10.so.0reference:  toundefined  `reference togoogle::protobuf::internal::NameOfEnum(google::protobuf::EnumDescriptor const*, int) '`
xmlParseMemory/@usrLIBXML2_2.4.30/'lib64
//libgstreamerusr-/0.10.so.0lib64:/ libgstreamerundefined- 0.10.so.0reference:  toundefined  `referencexmlDocGetRootElement @to LIBXML2_2.4.30`'xmlFree
@.LIBXML2_2.4.30build_release'/
lib./build_releaselibcaffe.so/:lib /undefinedlibcaffe.so :reference  undefinedto  reference` togoogle::protobuf::GoogleOnceInitImpl(long*, google::protobuf::Closure*) '`
/usrgoogle::protobuf::internal::NameOfEnum(google::protobuf::EnumDescriptor const*, int)/'lib64
//libgstreamerusr-/0.10.so.0lib64:/ libgstreamerundefined- 0.10.so.0reference:  toundefined  `referencexmlFreeDoc @toLIBXML2_2.4.30 '`
xmlDocGetRootElement/@usrLIBXML2_2.4.30/'lib64
/.libgstreamerbuild_release-/0.10.so.0lib:/ libcaffe.soundefined:  referenceundefined  toreference  `toxmlNewNs @`LIBXML2_2.4.30'
google::protobuf::GoogleOnceInitImpl(long*, google::protobuf::Closure*)/'usr
//lib64usr//libgstreamerlib64-/0.10.so.0libgstreamer:- 0.10.so.0undefined:  referenceundefined  toreference  `toxmlNewDoc @`LIBXML2_2.4.30xmlFreeDoc'@
LIBXML2_2.4.30.'build_release
//usr/liblib64//libcaffe.solibgstreamer:- 0.10.so.0undefined:  referenceundefined  toreference  `to `xmlNewNs@LIBXML2_2.4.30google::protobuf::internal::WireFormatLite::WriteString(int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, google::protobuf::io::CodedOutputStream*)'
'/
usr./build_releaselib64//liblibgstreamer/-libcaffe.so0.10.so.0::  undefinedundefined  referencereference  toto  ``xmlNewDoc@google::protobuf::DescriptorPool::FindFileByName(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) constLIBXML2_2.4.30''

..build_releasebuild_release//liblib//libcaffe.solibcaffe.so::  undefinedundefined  referencereference  toto  ``google::protobuf::internal::WireFormatLite::ReadBytes(google::protobuf::io::CodedInputStream*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >*)'google::protobuf::internal::WireFormatLite::WriteString(int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, google::protobuf::io::CodedOutputStream*)
'.
build_release./build_releaselib//liblibcaffe.so/:libcaffe.so :undefined  undefinedreference  referenceto  to` `google::protobuf::Message::InitializationErrorString() const'google::protobuf::DescriptorPool::FindFileByName(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const
'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::WireFormatLite::ReadBytes(google::protobuf::io::CodedInputStream*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >*)'
.collect2: build_release/lib/libcaffe.so: undefined reference to `google::protobuf::Message::InitializationErrorString() const'
ld returned 1 exit status
collect2: ld returned 1 exit status
make: *** [.build_release/tools/compute_image_mean.bin] Error 1
make: *** [.build_release/tools/device_query.bin] Error 1
.build_release/tools/caffe.o: In function `train()':
caffe.cpp:(.text+0x3130): undefined reference to `google::protobuf::internal::StringTypeHandlerBase::New()'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlOutputBufferCreateFile@LIBXML2_2.4.30'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlNodeGetContent@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::WireFormatLite::ReadString(google::protobuf::io::CodedInputStream*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >*)'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlNewChild@LIBXML2_2.4.30'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlNewDocNode@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::io::CodedInputStream::~CodedInputStream()'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::Message::GetTypeName() const'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::StringTypeHandlerBase::Delete(std::basic_string<char, std::char_traits<char>, std::allocator<char> >*)'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::kEmptyString'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlParseCharEncoding@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::MessageFactory::InternalRegisterGeneratedFile(char const*, void (*)(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&))'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlParseFile@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::io::CodedInputStream::default_recursion_limit_'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlSearchNsByHref@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::Message::DebugString() const'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::io::CodedInputStream::BytesUntilLimit() const'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::WireFormatLite::WriteBytes(int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, google::protobuf::io::CodedOutputStream*)'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlFindCharEncodingHandler@LIBXML2_2.4.30'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlSaveFormatFileTo@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::MessageLite::ParseFromString(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlParseMemory@LIBXML2_2.4.30'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlFree@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::NameOfEnum(google::protobuf::EnumDescriptor const*, int)'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlDocGetRootElement@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::GoogleOnceInitImpl(long*, google::protobuf::Closure*)'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlFreeDoc@LIBXML2_2.4.30'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlNewNs@LIBXML2_2.4.30'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlNewDoc@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::WireFormatLite::WriteString(int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, google::protobuf::io::CodedOutputStream*)'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::DescriptorPool::FindFileByName(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::WireFormatLite::ReadBytes(google::protobuf::io::CodedInputStream*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >*)'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::Message::InitializationErrorString() const'
collect2: ld returned 1 exit status
make: *** [.build_release/tools/caffe.bin] Error 1

it seems that the protobuf happens to some problem, could you provide any suggestion on this?

dicecco1 commented 7 years ago

Which version of protobuf do you have? I saw some issues a while ago that forced me to use an earlier version of protobuf because of the version that SDAccel uses. It doesn't look like it's the exact same issue but it might help out regardless.

https://forums.xilinx.com/t5/SDAccel/Linking-to-newer-versions-of-libprotobuf-causes-segfault-in/td-p/748302

I did see some similar issues when trying to build on Ubuntu 16.04, which again I think was related to the version of protobuf that was used.

JulyJohn commented 7 years ago

@dicecco1 I'm using protobuf-2.5.0-8.el7.x86_64, and I think it's an old enough version :-) Could you specify which version you are using? Maybe that helps.

dicecco1 commented 7 years ago

I used 2.4.1 installed from the git repo.

JulyJohn commented 7 years ago

Hi,@dicecco1

after uninstall the protobuf v2.5.0, I compile and install the v2.4.1 from the git repo.

"make all" again, I got this erro:

CXX src/caffe/util/upgrade_proto.cpp
AR -o .build_release/lib/libcaffe.a
LD -o .build_release/lib/libcaffe.so.1.0.0
CXX tools/caffe.cpp
CXX/LD -o .build_release/tools/caffe.bin
.build_release/tools/caffe.o: In function `train()':
caffe.cpp:(.text+0x3128): undefined reference to `google::protobuf::internal::StringTypeHandlerBase::New()'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlOutputBufferCreateFile@LIBXML2_2.4.30'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlNodeGetContent@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::WireFormatLite::ReadString(google::protobuf::io::CodedInputStream*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >*)'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlNewChild@LIBXML2_2.4.30'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlNewDocNode@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::Message::GetTypeName() const'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::StringTypeHandlerBase::Delete(std::basic_string<char, std::char_traits<char>, std::allocator<char> >*)'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::kEmptyString'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlParseCharEncoding@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::MessageFactory::InternalRegisterGeneratedFile(char const*, void (*)(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&))'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlParseFile@LIBXML2_2.4.30'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlSearchNsByHref@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::Message::DebugString() const'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::WireFormatLite::WriteBytes(int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, google::protobuf::io::CodedOutputStream*)'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlFindCharEncodingHandler@LIBXML2_2.4.30'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlSaveFormatFileTo@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::MessageLite::ParseFromString(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlParseMemory@LIBXML2_2.4.30'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlFree@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::NameOfEnum(google::protobuf::EnumDescriptor const*, int)'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlDocGetRootElement@LIBXML2_2.4.30'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlFreeDoc@LIBXML2_2.4.30'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlNewNs@LIBXML2_2.4.30'
/usr/lib64/libgstreamer-0.10.so.0: undefined reference to `xmlNewDoc@LIBXML2_2.4.30'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::WireFormatLite::WriteString(int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, google::protobuf::io::CodedOutputStream*)'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::DescriptorPool::FindFileByName(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::WireFormatLite::ReadBytes(google::protobuf::io::CodedInputStream*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >*)'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::Message::InitializationErrorString() const'
collect2: ld returned 1 exit status
make: *** [.build_release/tools/caffe.bin] Error 1

it's more likely that the "libgstreamer-0.10.so.0" is the actual problem, do you have any suggestion?

dicecco1 commented 7 years ago

Are you able to build standalone Caffe? Trying to diagnose if this is a problem related to one of the libraries used by SDAccel or not. It looks like it's a problem with whatever version of libxml you have judging from: xmlFree@LIBXML2_2.4.30

JulyJohn commented 7 years ago

hi, @dicecco1

I have built up the CPU version Caffe successfully on the same machine, but when I try to build up your caffe again, it still gives the same erro.