Hi, I’m compiling a program using gcc 6 and I try to link with llvm 5.0 libraries. Below is the detail of the installed packages. gcc 6.4.0-1 gcc-libs 6.4.0-1 mingw-w64-x86_64-llvm 5.0.0-3
I’m not using the LLVM.dll lib because I get other link errors, related to my API call e.g. undefined reference to llvm::ConstantInt::get(llvm::Type*, unsigned long, bool) llvm::ConstantInt::get(llvm::IntegerType*, unsigned long, bool) llvm::ArrayType::get(llvm::Type*, unsigned long) llvm::ConstantInt::get(llvm::IntegerType*, unsigned long, bool) llvm::SmallVectorBase::grow_pod(void*, unsigned long, unsigned long) llvm::WriteBitcodeToFile(llvm::Module const*, llvm::raw_ostream&, bool, llvm::ModuleSummaryIndex const*, bool, std::array<unsigned int, 5ul>*) llvm::createPrintModulePass(llvm::raw_ostream&, std::string const&, bool) llvm::sys::getDefaultTargetTriple() llvm::WriteBitcodeToFile(llvm::Module const*, llvm::raw_ostream&, bool, llvm::ModuleSummaryIndex const*, bool, std::array<unsigned int, 5ul>*) llvm::sys::getDefaultTargetTriple() llvm::MemoryBuffer::getFileOrSTDIN(llvm::Twine const&, long, bool) llvm::raw_ostream::write(char const*, unsigned long) etc... thus I’m using the --ignore-libllvm option with llvm-config and I link against the following libraries: -lLLVMLTO -lLLVMPasses -lLLVMObjCARCOpts -lLLVMSymbolize -lLLVMDebugInfoPDB -lLLVMDebugInfoDWARF -lLLVMTableGen -lLLVMDlltoolDriver -lLLVMLineEditor -lLLVMOrcJIT -lLLVMCoverage -lLLVMMIRParser -lLLVMARMDisassembler -lLLVMARMCodeGen -lLLVMARMAsmParser -lLLVMARMDesc -lLLVMARMInfo -lLLVMARMAsmPrinter -lLLVMObjectYAML -lLLVMLibDriver -lLLVMOption -lLLVMX86Disassembler -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMGlobalISel -lLLVMSelectionDAG -lLLVMAsmPrinter -lLLVMDebugInfoCodeView -lLLVMDebugInfoMSF -lLLVMX86Desc -lLLVMMCDisassembler -lLLVMX86Info -lLLVMX86AsmPrinter -lLLVMX86Utils -lLLVMMCJIT -lLLVMInterpreter -lLLVMExecutionEngine -lLLVMRuntimeDyld -lLLVMCodeGen -lLLVMTarget -lLLVMCoroutines -lLLVMipo -lLLVMInstrumentation -lLLVMVectorize -lLLVMScalarOpts -lLLVMLinker -lLLVMIRReader -lLLVMAsmParser -lLLVMInstCombine -lLLVMTransformUtils -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMObject -lLLVMMCParser -lLLVMMC -lLLVMBitReader -lLLVMCore -lLLVMBinaryFormat -lLLVMSupport -lLLVMDemangle I get a lot of errors (see an excerpt below) at link time, almost all of them are related to undefined references to std::__cxx11:: symbols. Any idea about what’s wrong ? — Dom C:\msys64\mingw64/lib/libLLVMSupport.a(Program.cpp.obj):(.text+0x4542) : référence indéfinie vers « std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long long) » C:\msys64\mingw64/lib/libLLVMSupport.a(Program.cpp.obj):(.text+0x4681) : référence indéfinie vers « std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace(unsigned long long, unsigned long long, char const*, unsigned long long) » C:\msys64\mingw64/lib/libLLVMSupport.a(Program.cpp.obj):(.text+0x46f9) : référence indéfinie vers « std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long long) » C:\msys64\mingw64/lib/libLLVMSupport.a(Program.cpp.obj):(.text+0x48f0) : référence indéfinie vers « std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long long) » C:\msys64\mingw64/lib/libLLVMSupport.a(Program.cpp.obj):(.text+0x4a2f) : référence indéfinie vers « std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace(unsigned long long, unsigned long long, char const*, unsigned long long) » C:\msys64\mingw64/lib/libLLVMSupport.a(Program.cpp.obj):(.text+0x4aa7) : référence indéfinie vers « std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long long) » C:\msys64\mingw64/lib/libLLVMSupport.a(Program.cpp.obj):(.text+0x4b0e) : référence indéfinie vers « std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long long) » C:\msys64\mingw64/lib/libLLVMSupport.a(Program.cpp.obj):(.text+0x4e51) : référence indéfinie vers « std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace(unsigned long long, unsigned long long, char const*, unsigned long long) » C:\msys64\mingw64/lib/libLLVMSupport.a(Program.cpp.obj):(.text+0x4ec9) : référence indéfinie vers « std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long long) » C:\msys64\mingw64/lib/libLLVMSupport.a(Program.cpp.obj):(.text+0x4f31) : référence indéfinie vers « std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long long) » C:\msys64\mingw64/lib/libLLVMSupport.a(Program.cpp.obj):(.text+0x52ba) : référence indéfinie vers « std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long long) » C:\msys64\mingw64/lib/libLLVMSupport.a(Program.cpp.obj):(.text+0x54d2) : encore plus de références indéfinies suivent vers « std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long long) » C:\msys64\mingw64/lib/libLLVMSupport.a(Program.cpp.obj):(.text+0x569e) : référence indéfinie vers « std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace(unsigned long long, unsigned long long, char const*, unsigned long long) » C:\msys64\mingw64/lib/libLLVMSupport.a(Program.cpp.obj):(.text+0x57b0) : référence indéfinie vers « std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long long) » C:\msys64\mingw64/lib/libLLVMSupport.a(Program.cpp.obj):(.text+0x5893) : référence indéfinie vers « std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long long) » C:\msys64\mingw64/lib/libLLVMSupport.a(TargetRegistry.cpp.obj):(.text+0x191) : référence indéfinie vers « std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long long&, unsigned long long) » C:\msys64\mingw64/lib/libLLVMSupport.a(TargetRegistry.cpp.obj):(.text+0x229) : référence indéfinie vers « std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long long) » C:\msys64\mingw64/lib/libLLVMSupport.a(TargetRegistry.cpp.obj):(.text+0x29b) : référence indéfinie vers « std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long long) » C:\msys64\mingw64/lib/libLLVMSupport.a(TargetRegistry.cpp.obj):(.text+0x4dd) : référence indéfinie vers « std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace(unsigned long long, unsigned long long, char const*, unsigned long long) » C:\msys64\mingw64/lib/libLLVMSupport.a(TargetRegistry.cpp.obj):(.text+0x514) : référence indéfinie vers « std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace(unsigned long long, unsigned long long, char const*, unsigned long long) » C:\msys64\mingw64/lib/libLLVMSupport.a(TargetRegistry.cpp.obj):(.text+0x67a) : référence indéfinie vers « std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long long) » C:\msys64\mingw64/lib/libLLVMSupport.a(TargetRegistry.cpp.obj):(.text+0x858) : référence indéfinie vers « std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long long) » ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Msys2-users mailing list Msys2-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/msys2-users