llvm linker lldを含むUbuntuパッケージの名前は何ですか?

llvm linker lldを含むUbuntuパッケージの名前は何ですか?

これを試してみたいLLDLLVMから。ドキュメントはaptにあります。ここしかし、どのパッケージに実行可能ファイルが含まれているのかわかりませんlld

lld目的はシステムの依存関係を排除するようですが、clangにはlld組み込まれていません。 (まだありませんか?)

次の例を使用して、使用するかどうかlldをテストします。GNU-ldアーカイブファイルが表示される順序にはいくつかの制限がありますがlld(私が正しく理解した場合)、これについてもっと寛大に見えるので、lldこの例ではうまく構築されます。しかし、私のボックスでは失敗しました。

# one.c
extern int two();
int main(int argc, char *argv[])
{
    two();
    return 0;
}

# two.c
void two(){}

$ clang -c two.c; ar cr two.a two.o ; clang -c one.c ; clang two.a one.o
one.o: In function `main':
one.c:(.text+0x19): undefined reference to `two'
clang: error: linker command failed with exit code 1 (use -v to see invocation)

私たちが使用する場合-v

$ clang -c two.c; ar cr two.a two.o ; clang -c one.c ; clang -v two.a one.o
Ubuntu clang version 3.4-1ubuntu3 (tags/RELEASE_34/final) (based on LLVM 3.4)
Target: x86_64-pc-linux-gnu
Thread model: posix
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/4.9
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/4.9.0
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8.2
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9.0
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.9
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.9.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8.2
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9.0
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8
 "/usr/bin/ld" -z relro --hash-style=gnu --build-id --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o a.out /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crt1.o /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/crtbegin.o -L/usr/bin/../lib/gcc/x86_64-linux-gnu/4.8 -L/usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../.. -L/lib -L/usr/lib two.a one.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/crtend.o /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crtn.o
one.o: In function `main':
one.c:(.text+0x19): undefined reference to `two'
clang: error: linker command failed with exit code 1 (use -v to see invocation)

周囲電圧

Ubuntu clangバージョン3.4-1ubuntu3(tags / RELEASE_34 / final)(LLVM 3.4ベース)ターゲット:x86_64-pc-linux-gnuスレッドモデル:posix

ベストアンサー1

2017年1月から、LLVM 適切なストレージlldも同じだ。スナップショットパッケージDebianで利用可能です(不安定な4.0から5.0から実験的)。バージョン5以降、lldパッケージはDebian(lld-5.0Debian 9および10、Debian 9および10以降のパッケージ、現在準備中のリリース)で利用可能になりましたstretch-backportslld-6.0stretch-backportslld-7lld-8buster-backports

DebianまたはUbuntuにアップストリームパッケージをインストールするには、指示に従ってください。配布できるように

この回答が元々2015年2月に作成されたとき、LLVM 適切なストレージLLVM、Clang、コンパイラ-rt、ポリ、LLDBが含まれていることを意味します。 lldは含まれていません。でも最新のスナップショットパッケージDebian(LLVMパッケージと同じチームでのメンテナンス)にはlddは含まれていません。

おすすめ記事