2012-02-07 8 views
5

LLVMには2つのツールllvm-linkとllvm-ldがあります。私は知りたい:llvmリンカーはどのように使用しますか?

  • どのようにすべてのファイルを1つにマージするのですか?

  • どのようにgcc -Wl、-soname、libsomething.so.1のようなsonameを設定しますか?

私は、コマンドラインから、私はC++で行うにはどのように行う見つかっうかというか私にはショーC++ではなく、場合、これを行うしたいと思います。

おかげ

+0

あなたは正確に何をしようとしていますか?リンクオブジェクトファイルまたはLLVMビットコードファイル? .soを作成しますか? –

答えて

9
  • llvm-linkは別のLLVM IRファイルに(〜マージ)LLVM IRファイルをリンクするためのツールです。
  • llvm-ldは、ldと互換性があります。 LLVMには現在実際のリンク機能がないため、llvm-ldgccを呼び出して実際の最終段階を実行します。

あなただけのGCCの機能を持つようにしたい場合ことに注意してください、打ち鳴らすドライバを使用します。

clang -c file.c -fpic 
clang -shared file.o -o file.so 

あなたがgccのために行うだろうとあなたはまた、clang-Wlフラグを渡すことができます。

clang -shared file.o -Wl,-soname,libfile.so.8 -o file.so 
+2

これに追加するには、llvm-ldを直接使用しないでください。あなたが何をしているのか正確に分かっていて、それを処理するコンパイラドライバを持っていない場合を除いて、リンカを直接使用しないでください。 – echristo

+3

ちょうどヒント、Macでは、 '-dynamiclib'を使って '-shared ....- Wl、-soname、libxxxxx'の部分を置き換えます。 – clsung

+0

@clsungありがとう! – Cfr

関連する問題