如何使用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与外部库
简而言之,您应该使用本机工具进行组装和链接(例如, as
和ld
),尽管目前有一些实验性支持用于生成目标文件和在LLVM中进行链接。
在任何情况下,Clang本身都可以调用平台链接器 – 这实际上是默认的,但当然你通过提供-c
覆盖它。