[LLVMdev] Errors linking against libLLVMCore

John Criswell criswell at illinois.edu
Thu Dec 27 10:24:57 PST 2012


On 12/26/12 12:32 AM, Rick Mann wrote:
> I'm trying to make a library in Xcode that links against LLVM. I used the STL C++ template in Xcode 4.5.2, added libLLVMCore.a and libLLVMSupport.a to the link binaries phase, and made this call in my code:
>
> 	llvm::LLVMContext& llvmCTX = llvm::getGlobalContext();
>
> I get link errors against std::string and other STL classes:
>
> Undefined symbols for architecture x86_64:
>    "std::string::copy(char*, unsigned long, unsigned long) const", referenced from:
>        llvm::sys::Path::makeUnique(bool, std::string*) in libLLVMSupport.a(Path.o)
>    "std::string::find(char const*, unsigned long, unsigned long) const", referenced from:
>        llvm::sys::getDefaultTargetTriple() in libLLVMSupport.a(Host.o)
>        .
>        .
>        .
>
> Builds fine if I take out that line (the only line, so far) of LLVM code.
>
> But code like this compiles fine:
>
> 	std::string s = "Hello world";
> 	std::printf("%s", s.c_str());
>
> I figure I'm missing a lib, but I have no idea which.

It is possible (but a bit unlikely) that your problem is because you're 
not linking in libstdc++.  Some C++ methods are defined in header files; 
that might explain why your simple program works but using 
libLLVMVMCore.a doesn't work.

Try using std::string::find() in your simple program and see if it 
links.  If it doesn't, then I think you just need to add -lstdc++.

-- John T.

>
> TIA,
>




More information about the llvm-dev mailing list