如何使用clang和llvm-link链接库

我正在编译我的程序,

clang++ -O4 -emit-llvm file1.cpp -c -o file1.bc -pthread clang++ -O4 -emit-llvm file2.cpp -c -o file2.bc -pthread llvm-link file1.bc file2.bc -o main.ll -S 

如何指定与-ldl的链接

llvm-link是一个将LLVM IR文件“链接”到一个IR文件中的程序; 你可以在这里阅读更多相关信息。 它与ld或将目标文件链接在一起没有任何关系。

如果您确实要生成目标代码和/或可执行文件,请参阅以下相关问题:

  • 如何使用llvm生成机器代码
  • llvm-link与外部库

简而言之,您应该使用本机工具进行组装和链接(例如, asld ),尽管目前有一些实验性支持用于生成目标文件和在LLVM中进行链接。

在任何情况下,Clang本身都可以调用平台链接器 – 这实际上是默认的,但当然你通过提供-c覆盖它。