2016-07-14 15 views
0

Ich baue llvm mit Polly, nachdem ich cmake $LLVM_SRC verwende. dann, wenn ich make -j4 benutze, habe ich diese Fehler unten. Ich habe in Google gesucht, scheint ein Problem mit Link zu sein. Aber ich weiß nicht, wie ich das beheben soll. Könnte mir jemand helfen?Linkerfehler beim Erstellen von LLVM

Built target LLVMBitWriter 
[ 1%] Built target LLVMLinker 
[ 5%] Built target LLVMSupport 
[ 5%] Built target LLVMLTO 
[ 5%] Built target LLVMMCParser 
[ 5%] Built target LLVMMCDisassembler 
[ 5%] Built target LLVMOption 
[ 6%] Built target LLVMObject 
[ 6%] Built target LLVMDebugInfo 
[ 8%] Built target LLVMMC 
[ 8%] Built target LLVMExecutionEngine 
[ 9%] Built target LLVMMCJIT 
[ 9%] Built target LLVMRuntimeDyld 
[ 9%] Built target LLVMAsmParser 
[ 9%] Built target LLVMLineEditor 
[ 9%] Built target LLVMTarget 
[ 9%] Built target LLVMProfileData 
[ 9%] Linking CXX executable ../../bin/FileCheck 
Built target llvm-PerfectShuffle 
Scanning dependencies of target yaml-bench 
[ 9%] Built target count 
Linking CXX executable ../../bin/not 
[ 9%] Scanning dependencies of target gtest 
Building CXX object utils/yaml-bench/CMakeFiles/yaml-bench.dir/YAMLBench.cpp.o 
[ 9%] Building CXX object utils/unittest/CMakeFiles/gtest.dir/googletest/src/gtest-all.cc.o 
../../lib/libLLVMSupport.a(Program.cpp.o): In function `MakeErrMsg(std::string*, std::string const&, int)': 
Program.cpp:(.text._ZL10MakeErrMsgPSsRKSsi+0x85): undefined reference to `std::string::operator=(std::string&&)' 
../../lib/libLLVMSupport.a(Program.cpp.o): In function `llvm::sys::FindProgramByName(std::string const&)': 
Program.cpp:(.text._ZN4llvm3sys17FindProgramByNameERKSs+0xc5): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string&&)' 
../../lib/libLLVMSupport.a(Program.cpp.o): In function `llvm::RedirectIO(llvm::StringRef const*, int, std::string*)': 
Program.cpp:(.text._ZN4llvmL10RedirectIOEPKNS_9StringRefEiPSs+0x7e): undefined reference to `std::string::operator=(std::string&&)' 
../../lib/libLLVMSupport.a(Program.cpp.o): In function `Execute(llvm::sys::ProcessInfo&, llvm::StringRef, char const**, char const**, llvm::StringRef const**, unsigned int, std::string*)': 
Program.cpp:(.text._ZL7ExecuteRN4llvm3sys11ProcessInfoENS_9StringRefEPPKcS6_PPKS3_jPSs+0x142): undefined reference to `std::string::operator=(std::string&&)' 
Program.cpp:(.text._ZL7ExecuteRN4llvm3sys11ProcessInfoENS_9StringRefEPPKcS6_PPKS3_jPSs+0x29e): undefined reference to `std::string::operator=(std::string&&)' 
../../lib/libLLVMSupport.a(Program.cpp.o): In function `llvm::sys::Wait(llvm::sys::ProcessInfo const&, unsigned int, bool, std::string*)': 
Program.cpp:(.text._ZN4llvm3sys4WaitERKNS0_11ProcessInfoEjbPSs+0x394): undefined reference to `std::string::operator=(std::string&&)' 
../../lib/libLLVMSupport.a(Program.cpp.o): In function `std::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)': 
Program.cpp:(.text._ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EOS6_S7_[_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EOS6_S7_]+0x9b): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string&&)' 
Program.cpp:(.text._ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EOS6_S7_[_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EOS6_S7_]+0xca): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string&&)' 
../../lib/libLLVMSupport.a(Program.cpp.o): In function `std::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, char const*)': 
Program.cpp:(.text._ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EOS6_PKS3_[_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EOS6_PKS3_]+0x3d): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string&&)' 
../../lib/libLLVMSupport.a(Debug.cpp.o): In function `llvm::cl::parser<std::string>::parse(llvm::cl::Option&, llvm::StringRef, llvm::StringRef, std::string&)': 
Debug.cpp:(.text._ZN4llvm2cl6parserISsE5parseERNS0_6OptionENS_9StringRefES5_RSs[_ZN4llvm2cl6parserISsE5parseERNS0_6OptionENS_9StringRefES5_RSs]+0x3f): undefined reference to `std::string::operator=(std::string&&)' 
collect2: error: ld returned 1 exit status 
make[2]: *** [bin/not] Error 1 
make[1]: *** [utils/not/CMakeFiles/not.dir/all] Error 2 
make[1]: *** Waiting for unfinished jobs.... 
CMakeFiles/FileCheck.dir/FileCheck.cpp.o: In function `llvm::cl::parser<std::string>::parse(llvm::cl::Option&, llvm::StringRef, llvm::StringRef, std::string&)': 
FileCheck.cpp:(.text._ZN4llvm2cl6parserISsE5parseERNS0_6OptionENS_9StringRefES5_RSs[_ZN4llvm2cl6parserISsE5parseERNS0_6OptionENS_9StringRefES5_RSs]+0x3f): undefined reference to `std::string::operator=(std::string&&)' 
CMakeFiles/FileCheck.dir/FileCheck.cpp.o: In function `Pattern::EvaluateExpression(llvm::StringRef, std::string&) const': 
FileCheck.cpp:(.text._ZNK7Pattern18EvaluateExpressionEN4llvm9StringRefERSs+0x15f): undefined reference to `std::string::operator=(std::string&&)' 
CMakeFiles/FileCheck.dir/FileCheck.cpp.o: In function `std::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)': 
FileCheck.cpp:(.text._ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EOS6_S7_[_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EOS6_S7_]+0x9b): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string&&)' 
FileCheck.cpp:(.text._ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EOS6_S7_[_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EOS6_S7_]+0xca): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string&&)' 
CMakeFiles/FileCheck.dir/FileCheck.cpp.o: In function `std::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, char const*)': 
FileCheck.cpp:(.text._ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EOS6_PKS3_[_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EOS6_PKS3_]+0x3d): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string&&)' 
CMakeFiles/FileCheck.dir/FileCheck.cpp.o: In function `std::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': 
FileCheck.cpp:(.text._ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EOS6_RKS6_[_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EOS6_RKS6_]+0x3d): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string&&)' 
CMakeFiles/FileCheck.dir/FileCheck.cpp.o: In function `Pattern::Pattern(Pattern&&)': 
FileCheck.cpp:(.text._ZN7PatternC2EOS_[_ZN7PatternC5EOS_]+0x5b): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string&&)' 
CMakeFiles/FileCheck.dir/FileCheck.cpp.o:FileCheck.cpp:(.text._ZN9__gnu_cxx13new_allocatorISsE9constructISsISsEEEvPT_DpOT0_[_ZN9__gnu_cxx13new_allocatorISsE9constructISsISsEEEvPT_DpOT0_]+0x41): more undefined references to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string&&)' follow 
../../lib/libLLVMSupport.a(CommandLine.cpp.o): In function `LookupNearestOption(llvm::StringRef, llvm::StringMap<llvm::cl::Option*, llvm::MallocAllocator> const&, std::string&)': 
CommandLine.cpp:(.text._ZL19LookupNearestOptionN4llvm9StringRefERKNS_9StringMapIPNS_2cl6OptionENS_15MallocAllocatorEEERSs+0x317): undefined reference to `std::string::operator=(std::string&&)' 
../../lib/libLLVMSupport.a(SourceMgr.cpp.o): In function `llvm::SourceMgr::GetMessage(llvm::SMLoc, llvm::SourceMgr::DiagKind, llvm::Twine const&, llvm::ArrayRef<llvm::SMRange>, llvm::ArrayRef<llvm::SMFixIt>) const': 
SourceMgr.cpp:(.text._ZNK4llvm9SourceMgr10GetMessageENS_5SMLocENS0_8DiagKindERKNS_5TwineENS_8ArrayRefINS_7SMRangeEEENS6_INS_7SMFixItEEE+0x1d6): undefined reference to `std::string::operator=(std::string&&)' 
../../lib/libLLVMSupport.a(SourceMgr.cpp.o): In function `llvm::SMFixIt::SMFixIt(llvm::SMFixIt&&)': 
SourceMgr.cpp:(.text._ZN4llvm7SMFixItC2EOS0_[_ZN4llvm7SMFixItC5EOS0_]+0x3d): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string&&)' 
../../lib/libLLVMSupport.a(SourceMgr.cpp.o): In function `llvm::SMFixIt::operator=(llvm::SMFixIt&&)': 
SourceMgr.cpp:(.text._ZN4llvm7SMFixItaSEOS0_[_ZN4llvm7SMFixItaSEOS0_]+0x3d): undefined reference to `std::string::operator=(std::string&&)' 
collect2: error: ld returned 1 exit status 
make[2]: *** [bin/FileCheck] Error 1 
make[1]: *** [utils/FileCheck/CMakeFiles/FileCheck.dir/all] Error 2 
Linking CXX executable ../../bin/yaml-bench 
CMakeFiles/yaml-bench.dir/YAMLBench.cpp.o: In function `prettyTag(llvm::yaml::Node*)': 
YAMLBench.cpp:(.text._ZL9prettyTagPN4llvm4yaml4NodeE+0x10a): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string&&)' 
YAMLBench.cpp:(.text._ZL9prettyTagPN4llvm4yaml4NodeE+0x186): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string&&)' 
../../lib/libLLVMSupport.a(CommandLine.cpp.o): In function `llvm::cl::parser<std::string>::parse(llvm::cl::Option&, llvm::StringRef, llvm::StringRef, std::string&)': 
CommandLine.cpp:(.text._ZN4llvm2cl6parserISsE5parseERNS0_6OptionENS_9StringRefES5_RSs[_ZN4llvm2cl6parserISsE5parseERNS0_6OptionENS_9StringRefES5_RSs]+0x3f): undefined reference to `std::string::operator=(std::string&&)' 
../../lib/libLLVMSupport.a(CommandLine.cpp.o): In function `LookupNearestOption(llvm::StringRef, llvm::StringMap<llvm::cl::Option*, llvm::MallocAllocator> const&, std::string&)': 
CommandLine.cpp:(.text._ZL19LookupNearestOptionN4llvm9StringRefERKNS_9StringMapIPNS_2cl6OptionENS_15MallocAllocatorEEERSs+0x317): undefined reference to `std::string::operator=(std::string&&)' 
../../lib/libLLVMSupport.a(CommandLine.cpp.o): In function `std::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)': 
CommandLine.cpp:(.text._ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EOS6_S7_[_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EOS6_S7_]+0x9b): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string&&)' 
CommandLine.cpp:(.text._ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EOS6_S7_[_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EOS6_S7_]+0xca): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string&&)' 
../../lib/libLLVMSupport.a(CommandLine.cpp.o): In function `std::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, char const*)': 
CommandLine.cpp:(.text._ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EOS6_PKS3_[_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EOS6_PKS3_]+0x3d): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string&&)' 
../../lib/libLLVMSupport.a(SourceMgr.cpp.o): In function `llvm::SourceMgr::GetMessage(llvm::SMLoc, llvm::SourceMgr::DiagKind, llvm::Twine const&, llvm::ArrayRef<llvm::SMRange>, llvm::ArrayRef<llvm::SMFixIt>) const': 
SourceMgr.cpp:(.text._ZNK4llvm9SourceMgr10GetMessageENS_5SMLocENS0_8DiagKindERKNS_5TwineENS_8ArrayRefINS_7SMRangeEEENS6_INS_7SMFixItEEE+0x1d6): undefined reference to `std::string::operator=(std::string&&)' 
../../lib/libLLVMSupport.a(SourceMgr.cpp.o): In function `std::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': 
SourceMgr.cpp:(.text._ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EOS6_RKS6_[_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EOS6_RKS6_]+0x3d): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string&&)' 
../../lib/libLLVMSupport.a(SourceMgr.cpp.o): In function `llvm::SMFixIt::SMFixIt(llvm::SMFixIt&&)': 
SourceMgr.cpp:(.text._ZN4llvm7SMFixItC2EOS0_[_ZN4llvm7SMFixItC5EOS0_]+0x3d): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string&&)' 
../../lib/libLLVMSupport.a(SourceMgr.cpp.o): In function `llvm::SMFixIt::operator=(llvm::SMFixIt&&)': 
SourceMgr.cpp:(.text._ZN4llvm7SMFixItaSEOS0_[_ZN4llvm7SMFixItaSEOS0_]+0x3d): undefined reference to `std::string::operator=(std::string&&)' 
../../lib/libLLVMSupport.a(Timer.cpp.o): In function `std::pair<llvm::TimeRecord, std::string>::pair(std::pair<llvm::TimeRecord, std::string>&&)': 
Timer.cpp:(.text._ZNSt4pairIN4llvm10TimeRecordESsEC1EOS2_[_ZNSt4pairIN4llvm10TimeRecordESsEC1EOS2_]+0x4d): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string&&)' 
../../lib/libLLVMSupport.a(Timer.cpp.o): In function `std::pair<llvm::TimeRecord, std::string>::operator=(std::pair<llvm::TimeRecord, std::string>&&)': 
Timer.cpp:(.text._ZNSt4pairIN4llvm10TimeRecordESsEaSEOS2_[_ZNSt4pairIN4llvm10TimeRecordESsEaSEOS2_]+0x5d): undefined reference to `std::string::operator=(std::string&&)' 
../../lib/libLLVMSupport.a(YAMLParser.cpp.o): In function `llvm::yaml::Node::getVerbatimTag() const': 
YAMLParser.cpp:(.text._ZNK4llvm4yaml4Node14getVerbatimTagEv+0x16a): undefined reference to `std::string::operator=(std::string&&)' 
YAMLParser.cpp:(.text._ZNK4llvm4yaml4Node14getVerbatimTagEv+0x1d0): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string&&)' 
YAMLParser.cpp:(.text._ZNK4llvm4yaml4Node14getVerbatimTagEv+0x29b): undefined reference to `std::string::operator=(std::string&&)' 
YAMLParser.cpp:(.text._ZNK4llvm4yaml4Node14getVerbatimTagEv+0x301): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string&&)' 
YAMLParser.cpp:(.text._ZNK4llvm4yaml4Node14getVerbatimTagEv+0x3fa): undefined reference to `std::string::operator=(std::string&&)' 
YAMLParser.cpp:(.text._ZNK4llvm4yaml4Node14getVerbatimTagEv+0x511): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string&&)' 
../../lib/libLLVMSupport.a(YAMLParser.cpp.o): In function `std::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)': 
YAMLParser.cpp:(.text._ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_OS6_[_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_OS6_]+0x3f): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string&&)' 
collect2: error: ld returned 1 exit status 
make[2]: *** [bin/yaml-bench] Error 1 
make[1]: *** [utils/yaml-bench/CMakeFiles/yaml-bench.dir/all] Error 2 
Linking CXX static library ../../lib/libgtest.a 
[ 9%] Built target gtest 
make: *** [all] Error 2 

Antwort

0

Ich habe diese Art von Fehler zu sehen, wenn eine Diskrepanz zwischen der C++ Bibliothek gibt es verwendet zu kompilieren und zu dem man es gegen die Verknüpfung ist.

Auf jeden Fall ist das Problem sicherlich nicht LLVM spezifisch.