LLVM bitcode library '.bc' and example of its usage in C++ project

242 Views Asked by At

I want to use Apache TVM in WASM environment and for that I have compiled runtime library using LLVM like the tutorial suggests. As the outcome, I have a library with .bc format and a little surfing on the internet has shown that it is LLVM-specific format.

How can I use this .bc file in my C++ project? Obviously, I can not link it as my usual static/dynamic librares. Do I need to recompile it into static .a library, for instance?

1

There are 1 best solutions below

0
starball On BEST ANSWER

That's a LLVM bitcode file. You can convert it into an object file by using llc, like llc -filetype=obj foo.bc.

You can build the object file as part of an executable (clang++ -o foo foo.o)

Or you can turn the object file into a suitable binary type, such as a static library. Ex. llvm-ar rcs libfoo.a foo.o. Once you have the library binary, you can link to it how you normally would link to a library of that type. clang++ -o foo -L/path/to/directory/containing/libfoo.a -lfoo