如何使用llvm链接器?

bio*_*ics 7 c++ llvm

LLVM提供了2个工具llvm-link和llvm-ld.我想知道:

  • 如何合并所有.o文件?

  • 怎么用gcc -Wl,-soname,libsomething.so.1设置一个soname?

我想用c ++做这个,但如果向我展示如何从命令行我将找到如何在c ++中做.

谢谢

Eli*_*sky 10

  • 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
Run Code Online (Sandbox Code Playgroud)

你也可以像往常一样传递-Wl旗帜:clanggcc

clang -shared file.o -Wl,-soname,libfile.so.8 -o file.so
Run Code Online (Sandbox Code Playgroud)

  • 只是提示,在Mac上,使用'-dynamiclib'替换'-shared ....- Wl,-soname,libxxxxx'部分 (4认同)
  • `LLVM 目前没有真正的链接功能`。仍然如此吗?(注 http://lld.llvm.org/) (4认同)
  • 要添加到此,请不要直接使用llvm-ld.嘿,请不要直接使用任何链接器,除非你确切知道你在做什么,而且你没有编译器驱动程序来为你处理它. (2认同)