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?
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