LLVM提供了2个工具llvm-link和llvm-ld。我想知道:
如何将所有.o文件合并为一个?
如何设置一个soname,就像使用gcc -Wl,-soname,libsomething.so.1一样?
我想用C++实现这个操作,但如果你可以向我展示如何在命令行上完成,我会自己在C++中实现。
谢谢!
llvm-link
是用于将 LLVM IR 文件链接(合并)到另一个 LLVM IR 文件中的工具。llvm-ld
试图兼容 ld
。请注意,LLVM 目前没有真正的链接功能,因此 llvm-ld
调用 gcc
来执行实际的最终阶段。请注意,如果您只想使用 GCC 的功能,请使用 clang 驱动程序:
clang -c file.c -fpic
clang -shared file.o -o file.so
你也可以像在 gcc
中一样,向 clang
传递 -Wl
标志:
clang -shared file.o -Wl,-soname,libfile.so.8 -o file.so