[LLVMdev] LLVM Basic Program Compilation

waxiadao@gmail.com waxiadao at gmail.com
Sun Aug 3 03:19:27 PDT 2014


For some reasons lli and other tools is not compiled with -fPIC
-rdynamic flags,so you have to append -extra-object=/path/to/llvmlib
to let lli resolve them.

2014-08-01 20:42 GMT+08:00 Prakash Premkumar <prakash.prax at gmail.com>:
> I am just getting started with llvm.
>
> Here's code I am trying to compile:
>
> #include <stdio.h>
> #include "llvm/IR/LLVMContext.h"
> #include "llvm/IR/Module.h"
> #include "llvm/IR/IRBuilder.h"
>
>
> int main()
> {
>   llvm::LLVMContext& context = llvm::getGlobalContext();
>   llvm::Module* module = new llvm::Module("top", context);
>   llvm::IRBuilder<> builder(context);
>
>   module->dump( );
> }
>
> when i compile with :
>
> llvm-g++ try.cpp  -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS
> `llvm-config --cxxflags --ldflags --libs`
>
> I get the a.out file. No worries.
>
> But, I am interested in getting the LLVM IR file.So, I compiled with
>
> llvm-g++ try.cpp  -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -S
> -emit-llvm
> lli try.s
>
> I get an error saying
>
> LLVM ERROR: Program used external function '_ZN4llvm16getGlobalContextEv'
> which could not be resolved!
>
> The command :
>
> llvm-g++ try.cpp  -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS
> `llvm-config --cxxflags --ldflags --libs` -S -emit-llvm
>
> leaves me with several warnings and when i execute the resultant .s file
> with lli , I get the same error as before.
>
> Thanks a lot for your help
>
>
> Thank you,
>
> Prakash Premkumar
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>



More information about the llvm-dev mailing list