[LLVMdev] CreateGlobalStringPtr giving linker errors

Arpan Sen arpansen at gmail.com
Sun Jan 22 09:38:27 PST 2012


Hi,

I am trying to use some LLVM API in my C++ code, and I end up getting
linker errors. I am working on Apple MacOSX Lion. Using g++ for the
compile. It is the CreateGlobalStringPtr which is throwing the error. This
is LLVM 3.0.

Here's the codeI am trying to use some LLVM API in my C++ code, and I end
up getting linker errors. I am working on Apple MacOSX Lion. Using g++ for
the compile. It is the CreateGlobalStringPtr which is throwing the error.
This is LLVM 3.0.

Here's the code:

#define __STDC_LIMIT_MACROS
#define __STDC_CONSTANT_MACROS

#include "llvm/Support/DataTypes.h"
#include "llvm/Support/IRBuilder.h"
#include "llvm/LLVMContext.h"
#include "llvm/Module.h"
#include "llvm/Constants.h"
#include "llvm/Function.h"
#include "llvm/BasicBlock.h"
int main()
{
  llvm::LLVMContext & context = llvm::getGlobalContext();
  llvm::Module *module = new llvm::Module("top", context);
  llvm::IRBuilder<> builder(context);
  llvm::Value *helloWorld = builder.CreateGlobalStringPtr("hello world!\n");
}


And here's the error:

g++ e.cpp /Developer/Platforms/iPhoneOS.platform/Developer/usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin10/4.2.1/libllvmgcc.dylib
Undefined symbols for architecture x86_64:
  "llvm::ConstantExpr::getGetElementPtr(llvm::Constant*,
llvm::ArrayRef<llvm::Value*>, bool)", referenced from:
      llvm::ConstantExpr::getInBoundsGetElementPtr(llvm::Constant*,
llvm::ArrayRef<llvm::Value*>)in ccFB7xjg.o
  "llvm::GetElementPtrInst::getIndexedType(llvm::Type*,
llvm::ArrayRef<llvm::Value*>)", referenced from:
      llvm::GetElementPtrInst::GetElementPtrInst(llvm::Value*,
llvm::ArrayRef<llvm::Value*>, unsigned int, llvm::Twine const&,
llvm::Instruction*)in ccFB7xjg.o
  "llvm::PointerType::get(llvm::Type*, unsigned int)", referenced from:
      llvm::GetElementPtrInst::GetElementPtrInst(llvm::Value*,
llvm::ArrayRef<llvm::Value*>, unsigned int, llvm::Twine const&,
llvm::Instruction*)in ccFB7xjg.o
  "llvm::Instruction::Instruction(llvm::Type*, unsigned int,
llvm::Use*, unsigned int, llvm::Instruction*)", referenced from:
      llvm::GetElementPtrInst::GetElementPtrInst(llvm::Value*,
llvm::ArrayRef<llvm::Value*>, unsigned int, llvm::Twine const&,
llvm::Instruction*)in ccFB7xjg.o
  "llvm::GetElementPtrInst::init(llvm::Value*,
llvm::ArrayRef<llvm::Value*>, llvm::Twine const&)", referenced from:
      llvm::GetElementPtrInst::GetElementPtrInst(llvm::Value*,
llvm::ArrayRef<llvm::Value*>, unsigned int, llvm::Twine const&,
llvm::Instruction*)in ccFB7xjg.o
  "llvm::IRBuilderBase::CreateGlobalString(llvm::StringRef,
llvm::Twine const&)", referenced from:
      llvm::IRBuilder<true, llvm::ConstantFolder,
llvm::IRBuilderDefaultInserter<true>
>::CreateGlobalStringPtr(llvm::StringRef, llvm::Twine const&)in
ccFB7xjg.o
  "llvm::ConstantInt::get(llvm::IntegerType*, unsigned long long,
bool)", referenced from:
      llvm::IRBuilder<true, llvm::ConstantFolder,
llvm::IRBuilderDefaultInserter<true>
>::CreateGlobalStringPtr(llvm::StringRef, llvm::Twine const&)in
ccFB7xjg.o
ld: symbol(s) not found for architecture x86_64
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120122/978e0326/attachment.html>


More information about the llvm-dev mailing list