9

前回clangをチェックしたときはバージョン3.1 / 3.2でしたが、現在はUbuntu 13.04 64ビットで、公式のaptリポジトリからclangとllvm(およびツール)をインストールしましたが、の痕跡はありllvm-ld-3.4ませllvm-ld-3.0llvm-ld-3.1。私のマシンで使用できるこのツールのバージョンは 2 つだけです。私の質問は、llvm-ld を置き換えて、ライブラリまたはマシン実行可能ファイルを生成することになっているものは何ですか?

4

1 に答える 1

18

llvm-ldもはや存在しない。LLVM 3.2 リリース ノートから:

llvm-ld と llvm-stub は削除されました。llvm-ld 機能は部分的に llvm-link | に置き換えることができます。選ぶ | {llc | as, llc -filetype=obj} | ld、または完全に Clang に置き換えられます。

または、より適切な形式で:

  1. すべての .bc / .ll ファイルをllvm-linkでリンクして、1 つのビットコード ファイルを取得します。
  2. 実行optしてビットコード ファイルを最適化する
  3. 次のいずれかを使用して、オブジェクト ファイルを生成します。
    • llcasmファイルを取得し、システムアセンブラ( as)でオブジェクトファイルを取得
    • llc -filetype=objオブジェクトファイルを取得する (これはシステムアセンブラを単独で呼び出すだけです)
  4. ldオブジェクト ファイルを他のすべての必要なオブジェクト ファイルとリンクするためのシステム リンカ ( )

削除された理由については、この LLVM-dev ディスカッション を参照してください。

また、次の関連する質問に興味があるかもしれません: How to link object to libraries with LLVM >= 3.1 ? (GNU ld なし)

于 2013-07-22T05:04:25.427 に答える