【问题标题】:How to link a library with clang and llvm-link如何使用 clang 和 llvm-link 链接库
【发布时间】:2012-12-10 13:56:56
【问题描述】:

我正在这样编译我的程序,

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 指定链接

【问题讨论】:

  • 你试过clang++ -o main.ll file1.bc file2.vs -ldl 吗?
  • 不,这不起作用,它说未知的命令行
  • file2.vs 是我这边的一个错字,但我猜你已经修好了。您应该发布整个错误日志,因为 clang 能够链接。
  • 它说:llvm-link:未知的命令行参数'-ldl'。试试:'llvm-link -help' llvm-link: 你是说'-d'吗?
  • 您能准确显示您输入的内容吗? @İsmail'cartman'Dönmez 的建议应该可行。

标签: c++ c makefile llvm


【解决方案1】:

llvm-link 是一个程序,它将 LLVM IR 文件“链接”在一起成为单个 IR 文件;你可以阅读更多关于它的信息here。它与ld 或将目标文件链接在一起没有任何关系。

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-04
    • 2012-01-26
    • 1970-01-01
    • 2017-03-25
    • 2014-03-08
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    相关资源
    最近更新 更多