llvm library linking issues

I'm trying to make use of the llvm compiler libraries, but I can't get them to link to my program correctly.

#include <llvm/Constants.h>
#include <llvm/DerivedTypes.h>

int main(){

llvm::APInt(1,0);

return 0;
}

I get an error like:
undefined reference to `llvm::APInt::initSlowCase(unsigned int, unsigned long long, bool)

(this function is called by the inline APInt constructor)

The library seems to be found correctly; it doesn't give any other errors. Using nm I can see the mangled function initSlowCase exactly where I expect it to be. I'm out of ideas of that could be wrong.

I'm using kubuntu 12.04. Same error occurs with both clang++ and g++. LLVM libraries are 3.1
Any ideas on what might be the problem?

Hi Eugene,

I'm trying to make use of the llvm compiler libraries, but I can't get them to link to my program correctly.

#include <llvm/Constants.h>
#include <llvm/DerivedTypes.h>

int main(){

   llvm::APInt(1,0);

   return 0;
}

I get an error like:
undefined reference to `llvm::APInt::initSlowCase(unsigned int, unsigned long long, bool)

did you link with -lLLVMSupport (see the output of `llvm-config --libs
support`)? What link command did you use?

Ciao, Duncan.

I do this, and I've tried a few variations of on it:
clang++ `llvm-config --cppflags --ldflags --libs core` -o clangtest clangtest.cpp

I've also tried removing the library and the include file in turn, which in both cases succefully made the compiler not find the files needed.

Hi Eugene,

I'm trying to make use of the llvm compiler libraries, but I can't get them to link to my program correctly.

#include <llvm/Constants.h>
#include <llvm/DerivedTypes.h>

int main(){

llvm::APInt\(1,0\);

return 0;

}

I get an error like:
undefined reference to `llvm::APInt::initSlowCase(unsigned int, unsigned long long, bool)

did you link with -lLLVMSupport (see the output of `llvm-config --libs
support`)? What link command did you use?

Ciao, Duncan.

Hi Eugene,

I do this, and I've tried a few variations of on it:
clang++ `llvm-config --cppflags --ldflags --libs core` -o clangtest clangtest.cpp

the missing routine is defined in the support library, not the core library, try
--libs core support

Ciao, Duncan.

The output of `llvm-config --cppflags --ldflags --libs core support` and `llvm-config --cppflags --ldflags --libs core` is the same. I've also tried specifying -lLLVMSupport manually. Same result.
(This is resent so as to preserve the thread and newlines in the mailing list.)
--Eugene

Hi Eugene,

I do this, and I've tried a few variations of on it:
clang++ `llvm-config --cppflags --ldflags --libs core` -o clangtest clangtest.cpp

the missing routine is defined in the support library, not the core library, try
--libs core support

Ciao, Duncan.