linking llvm libraries with bitcode files

I’m developing an llvm-based compiler and when I try to generate
executable file the following error occurs:

./bin/llvmcode.s:35: undefined reference to `operator new[](unsigned
long)’

Note that in the generated IR, the function ‘@_Znam’ is called which is
located in one of llvm libraries. So, I should have linked the generated
assembly file with that library. Here is the code I used to do that:

llvm-as ./bin/llvmcode.ll
llc ./bin/llvmcode.bc
g++ -g ./bin/llvmcode.s `llvm-config --cppflags --ldflags --libs core
jit native` -O3 -o executable -rdynamic

What’s wrong with this code that causes the above error, and what’s the
best way to generate an executable file from ll files?
Any assistance would be appreciated.

That operator is defined in the C++ standard library. You probably
don't want to be linking the output of your compiler with LLVM
libraries, they'd be what you'd use to build the compiler itself.

However, g++ should find the required function anyway. It's possible
you have to add a "-lstdc++" (or -lc++ if you're using libc++, etc).
But it makes me wary about the rest of your toolchain.

Tim.

First, I shoud thank you for your suggested solution. Now, I have another question. I use the following command to generate executable file from llvm bitcode: