<div dir="ltr">I'm trying to link a program with LLVM on Linux. I've managed to take out the test files from 'llvm-config --libs' but now it's getting errors with missing symbols. The same program successfully links with the same version of LLVM (3.8) on Windows, so it's not a problem with the code per se, it's some kind of configuration issue. Any ideas?<div><br></div><div><div>g++ -std=c++11 -I/home/a/llvm/include -I/home/a/build/include   -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -g -O2 -L/home/a/build//lib                        -lLLVMLTO -lLLVMObjCARCOpts -lLLVMSymbolize -lLLVMDebugInfoPDB -lLLVMDebugInfoDWARF -lLLVMXCoreDisassembler -lLLVMXCoreCodeGen -lLLVMXCoreDesc -lLLVMXCoreInfo -lLLVMXCoreAsmPrinter -lLLVMSystemZDisassembler -lLLVMSystemZCodeGen -lLLVMSystemZAsmParser -lLLVMSystemZDesc -lLLVMSystemZInfo -lLLVMSystemZAsmPrinter -lLLVMSparcDisassembler -lLLVMSparcCodeGen -lLLVMSparcAsmParser -lLLVMSparcDesc -lLLVMSparcInfo -lLLVMSparcAsmPrinter -lLLVMPowerPCDisassembler -lLLVMPowerPCCodeGen -lLLVMPowerPCAsmParser -lLLVMPowerPCDesc -lLLVMPowerPCInfo -lLLVMPowerPCAsmPrinter -lLLVMNVPTXCodeGen -lLLVMNVPTXDesc -lLLVMNVPTXInfo -lLLVMNVPTXAsmPrinter -lLLVMMSP430CodeGen -lLLVMMSP430Desc -lLLVMMSP430Info -lLLVMMSP430AsmPrinter -lLLVMMipsDisassembler -lLLVMMipsCodeGen -lLLVMMipsAsmParser -lLLVMMipsDesc -lLLVMMipsInfo -lLLVMMipsAsmPrinter -lLLVMHexagonDisassembler -lLLVMHexagonCodeGen -lLLVMHexagonAsmParser -lLLVMHexagonDesc -lLLVMHexagonInfo -lLLVMCppBackendCodeGen -lLLVMCppBackendInfo -lLLVMBPFCodeGen -lLLVMBPFDesc -lLLVMBPFInfo -lLLVMBPFAsmPrinter -lLLVMARMDisassembler -lLLVMARMCodeGen -lLLVMARMAsmParser -lLLVMARMDesc -lLLVMARMInfo -lLLVMARMAsmPrinter -lLLVMAMDGPUCodeGen -lLLVMAMDGPUAsmParser -lLLVMAMDGPUDesc -lLLVMAMDGPUUtils -lLLVMAMDGPUInfo -lLLVMAMDGPUAsmPrinter -lLLVMAArch64Disassembler -lLLVMAArch64CodeGen -lLLVMAArch64AsmParser -lLLVMAArch64Desc -lLLVMAArch64Info -lLLVMAArch64AsmPrinter -lLLVMAArch64Utils -lLLVMMIRParser -lLLVMLibDriver -lLLVMOption -lLLVMTableGen -lLLVMLineEditor -lLLVMX86Disassembler -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMSelectionDAG -lLLVMAsmPrinter -lLLVMX86Desc -lLLVMMCDisassembler -lLLVMX86Info -lLLVMX86AsmPrinter -lLLVMX86Utils -lLLVMMCJIT -lLLVMPasses -lLLVMipo -lLLVMVectorize -lLLVMLinker -lLLVMIRReader -lLLVMAsmParser -lLLVMDebugInfoCodeView -lLLVMInterpreter -lLLVMCodeGen -lLLVMScalarOpts -lLLVMInstCombine -lLLVMInstrumentation -lLLVMProfileData -lLLVMBitWriter -lLLVMOrcJIT -lLLVMTransformUtils -lLLVMExecutionEngine -lLLVMTarget -lLLVMAnalysis -lLLVMRuntimeDyld -lLLVMObject -lLLVMMCParser -lLLVMBitReader -lLLVMMC -lLLVMCore -lLLVMSupport                        -ldl -lpthread -ltinfo  -o aklo aklo-aklo.o  </div><div>aklo-aklo.o: In function `operator()':</div><div>/mnt/a2/aklo.cpp:442: undefined reference to `llvm::outs()'</div><div>aklo-aklo.o: In function `llvm::raw_ostream::operator<<(llvm::StringRef)':</div><div>/home/a/llvm/include/llvm/Support/raw_ostream.h:166: undefined reference to `llvm::raw_ostream::write(char const*, unsigned long)'</div><div>aklo-aklo.o: In function `operator()':</div><div>/mnt/a2/aklo.cpp:443: undefined reference to `llvm::outs()'</div><div>/mnt/a2/aklo.cpp:447: undefined reference to `llvm::outs()'</div><div>/mnt/a2/aklo.cpp:450: undefined reference to `llvm::outs()'</div><div>/mnt/a2/aklo.cpp:452: undefined reference to `llvm::outs()'</div><div>aklo-aklo.o: In function `llvm::raw_ostream::operator<<(char const*)':</div><div>/home/a/llvm/include/llvm/Support/raw_ostream.h:166: undefined reference to `llvm::raw_ostream::write(char const*, unsigned long)'</div><div>aklo-aklo.o: In function `llvm::raw_ostream::operator<<(llvm::StringRef)':</div><div>/home/a/llvm/include/llvm/Support/raw_ostream.h:166: undefined reference to `llvm::raw_ostream::write(char const*, unsigned long)'</div><div>/home/a/llvm/include/llvm/Support/raw_ostream.h:166: undefined reference to `llvm::raw_ostream::write(char const*, unsigned long)'</div><div>aklo-aklo.o: In function `operator()':</div><div>/mnt/a2/aklo.cpp:430: undefined reference to `llvm::errs()'</div><div>aklo-aklo.o: In function `llvm::raw_ostream::operator<<(char)':</div><div>/home/a/llvm/include/llvm/Support/raw_ostream.h:141: undefined reference to `llvm::raw_ostream::write(unsigned char)'</div><div>aklo-aklo.o: In function `error(std::string)':</div><div>/mnt/a2/aklo.cpp:172: undefined reference to `llvm::SourceMgr::PrintMessage(llvm::SMLoc, llvm::SourceMgr::DiagKind, llvm::Twine const&, llvm::ArrayRef<llvm::SMRange>, llvm::ArrayRef<llvm::SMFixIt>, bool) const'</div><div>aklo-aklo.o: In function `print(long)':</div><div>/mnt/a2/aklo.cpp:388: undefined reference to `llvm::outs()'</div><div>/mnt/a2/aklo.cpp:393: undefined reference to `llvm::outs()'</div><div>aklo-aklo.o: In function `llvm::raw_ostream::operator<<(char)':</div><div>/home/a/llvm/include/llvm/Support/raw_ostream.h:141: undefined reference to `llvm::raw_ostream::write(unsigned char)'</div><div>aklo-aklo.o: In function `print(long)':</div><div>/mnt/a2/aklo.cpp:395: undefined reference to `llvm::outs()'</div><div>/mnt/a2/aklo.cpp:401: undefined reference to `llvm::outs()'</div><div>/mnt/a2/aklo.cpp:398: undefined reference to `llvm::outs()'</div><div>aklo-aklo.o: In function `llvm::raw_ostream::operator<<(char)':</div><div>/home/a/llvm/include/llvm/Support/raw_ostream.h:141: undefined reference to `llvm::raw_ostream::write(unsigned char)'</div><div>aklo-aklo.o: In function `llvm::StringMap<long, llvm::MallocAllocator>::find(llvm::StringRef) const':</div><div>/home/a/llvm/include/llvm/ADT/StringMap.h:284: undefined reference to `llvm::StringMapImpl::FindKey(llvm::StringRef) const'</div><div>aklo-aklo.o: In function `llvm::StringMap<long, llvm::MallocAllocator>::insert(std::pair<llvm::StringRef, long>)':</div><div>/home/a/llvm/include/llvm/ADT/StringMap.h:331: undefined reference to `llvm::StringMapImpl::LookupBucketFor(llvm::StringRef)'</div><div>/home/a/llvm/include/llvm/ADT/StringMap.h:344: undefined reference to `llvm::StringMapImpl::RehashTable(unsigned int)'</div><div>aklo-aklo.o: In function `llvm::raw_ostream::operator<<(char const*)':</div><div>/home/a/llvm/include/llvm/Support/raw_ostream.h:166: undefined reference to `llvm::raw_ostream::write(char const*, unsigned long)'</div><div>aklo-aklo.o: In function `llvm::raw_ostream::operator<<(std::string const&)':</div><div>/home/a/llvm/include/llvm/Support/raw_ostream.h:184: undefined reference to `llvm::raw_ostream::write(char const*, unsigned long)'</div><div>aklo-aklo.o: In function `print(long)':</div><div>/mnt/a2/aklo.cpp:398: undefined reference to `llvm::raw_ostream::operator<<(long)'</div><div>aklo-aklo.o: In function `llvm::raw_ostream::operator<<(char)':</div><div>/home/a/llvm/include/llvm/Support/raw_ostream.h:141: undefined reference to `llvm::raw_ostream::write(unsigned char)'</div><div>aklo-aklo.o: In function `llvm::cl::list<std::string, bool, llvm::cl::parser<std::string> >::getOptionWidth() const':</div><div>/home/a/llvm/include/llvm/Support/CommandLine.h:1387: undefined reference to `llvm::cl::basic_parser_impl::getOptionWidth(llvm::cl::Option const&) const'</div><div>aklo-aklo.o: In function `llvm::cl::list<std::string, bool, llvm::cl::parser<std::string> >::printOptionInfo(unsigned long) const':</div><div>/home/a/llvm/include/llvm/Support/CommandLine.h:1390: undefined reference to `llvm::cl::basic_parser_impl::printOptionInfo(llvm::cl::Option const&, unsigned long) const'</div><div>aklo-aklo.o: In function `~basic_parser':</div><div>/home/a/llvm/include/llvm/Support/CommandLine.h:763: undefined reference to `vtable for llvm::cl::basic_parser<std::string>'</div><div>aklo-aklo.o: In function `~Option':</div><div>/home/a/llvm/include/llvm/Support/CommandLine.h:290: undefined reference to `vtable for llvm::cl::Option'</div><div>aklo-aklo.o: In function `~basic_parser':</div><div>/home/a/llvm/include/llvm/Support/CommandLine.h:763: undefined reference to `vtable for llvm::cl::basic_parser<std::string>'</div><div>aklo-aklo.o: In function `~Option':</div><div>/home/a/llvm/include/llvm/Support/CommandLine.h:290: undefined reference to `vtable for llvm::cl::Option'</div><div>aklo-aklo.o: In function `llvm::raw_ostream::operator<<(llvm::StringRef)':</div><div>/home/a/llvm/include/llvm/Support/raw_ostream.h:166: undefined reference to `llvm::raw_ostream::write(char const*, unsigned long)'</div><div>aklo-aklo.o: In function `main':</div><div>/mnt/a2/aklo.cpp:434: undefined reference to `llvm::sys::PrintStackTraceOnErrorSignal(bool)'</div><div>aklo-aklo.o: In function `PrettyStackTraceProgram':</div><div>/home/a/llvm/include/llvm/Support/PrettyStackTrace.h:63: undefined reference to `llvm::PrettyStackTraceEntry::PrettyStackTraceEntry()'</div><div>/home/a/llvm/include/llvm/Support/PrettyStackTrace.h:63: undefined reference to `vtable for llvm::PrettyStackTraceProgram'</div><div>/home/a/llvm/include/llvm/Support/PrettyStackTrace.h:64: undefined reference to `llvm::EnablePrettyStackTrace()'</div><div>aklo-aklo.o: In function `main':</div><div>/mnt/a2/aklo.cpp:456: undefined reference to `llvm::cl::AddExtraVersionPrinter(void (*)())'</div><div>/mnt/a2/aklo.cpp:457: undefined reference to `llvm::cl::ParseCommandLineOptions(int, char const* const*, char const*)'</div><div>/mnt/a2/aklo.cpp:460: undefined reference to `llvm::MemoryBuffer::getFileOrSTDIN(llvm::Twine const&, long, bool)'</div><div>/mnt/a2/aklo.cpp:469: undefined reference to `llvm::outs()'</div><div>aklo-aklo.o: In function `~PrettyStackTraceProgram':</div><div>/home/a/llvm/include/llvm/Support/PrettyStackTrace.h:58: undefined reference to `vtable for llvm::PrettyStackTraceProgram'</div><div>/home/a/llvm/include/llvm/Support/PrettyStackTrace.h:58: undefined reference to `llvm::PrettyStackTraceEntry::~PrettyStackTraceEntry()'</div><div>aklo-aklo.o: In function `llvm::raw_ostream::operator<<(char)':</div><div>/home/a/llvm/include/llvm/Support/raw_ostream.h:141: undefined reference to `llvm::raw_ostream::write(unsigned char)'</div><div>aklo-aklo.o: In function `main':</div><div>/mnt/a2/aklo.cpp:463: undefined reference to `llvm::errs()'</div><div>/mnt/a2/aklo.cpp:463: undefined reference to `llvm::SMDiagnostic::print(char const*, llvm::raw_ostream&, bool, bool) const'</div><div>aklo-aklo.o: In function `PrettyStackTraceProgram':</div><div>/home/a/llvm/include/llvm/Support/PrettyStackTrace.h:63: undefined reference to `llvm::PrettyStackTraceEntry::~PrettyStackTraceEntry()'</div><div>aklo-aklo.o: In function `~PrettyStackTraceProgram':</div><div>/home/a/llvm/include/llvm/Support/PrettyStackTrace.h:58: undefined reference to `vtable for llvm::PrettyStackTraceProgram'</div><div>/home/a/llvm/include/llvm/Support/PrettyStackTrace.h:58: undefined reference to `llvm::PrettyStackTraceEntry::~PrettyStackTraceEntry()'</div><div>aklo-aklo.o: In function `__static_initialization_and_destruction_0':</div><div>/mnt/a2/aklo.cpp:164: undefined reference to `llvm::SourceMgr::~SourceMgr()'</div><div>aklo-aklo.o: In function `Option':</div><div>/home/a/llvm/include/llvm/Support/CommandLine.h:253: undefined reference to `vtable for llvm::cl::Option'</div><div>/home/a/llvm/include/llvm/Support/CommandLine.h:253: undefined reference to `llvm::cl::GeneralCategory'</div><div>aklo-aklo.o: In function `parser':</div><div>/home/a/llvm/include/llvm/Support/CommandLine.h:938: undefined reference to `vtable for llvm::cl::parser<std::string>'</div><div>aklo-aklo.o: In function `llvm::cl::list<std::string, bool, llvm::cl::parser<std::string> >::done()':</div><div>/home/a/llvm/include/llvm/Support/CommandLine.h:1398: undefined reference to `llvm::cl::Option::addArgument()'</div><div>aklo-aklo.o: In function `~basic_parser':</div><div>/home/a/llvm/include/llvm/Support/CommandLine.h:763: undefined reference to `vtable for llvm::cl::basic_parser<std::string>'</div><div>aklo-aklo.o: In function `~Option':</div><div>/home/a/llvm/include/llvm/Support/CommandLine.h:290: undefined reference to `vtable for llvm::cl::Option'</div><div>aklo-aklo.o:(.rodata._ZTIN4llvm2cl4listISsbNS0_6parserISsEEEE[_ZTIN4llvm2cl4listISsbNS0_6parserISsEEEE]+0x18): undefined reference to `typeinfo for llvm::cl::Option'</div><div>aklo-aklo.o:(.rodata._ZTVN4llvm2cl4listISsbNS0_6parserISsEEEE[_ZTVN4llvm2cl4listISsbNS0_6parserISsEEEE]+0x20): undefined reference to `llvm::cl::Option::anchor()'</div><div>aklo-aklo.o:(.rodata._ZTVN4llvm2cl4listISsbNS0_6parserISsEEEE[_ZTVN4llvm2cl4listISsbNS0_6parserISsEEEE]+0x48): undefined reference to `llvm::cl::Option::addOccurrence(unsigned int, llvm::StringRef, llvm::StringRef, bool)'</div><div>collect2: error: ld returned 1 exit status</div></div><div><br></div></div>