16

我为 Clang 使用哪个链接器?

如果我使用 Clang 或GNU 链接器( ld) 作为链接器,我会收到大量错误,就好像我没有与标准库链接一样。

g++ $(OBJS) -o $(BINDIR)/obtap

看来我必须使用 g++ 才能链接我的 Clang 对象。

4

3 回答 3

26

我运行的是“clang”而不是“clang++”,这意味着它没有链接 C++ 标准库。

于 2011-12-09T06:36:41.953 回答
4

您不必使用 llvm 的链接编辑器。我将避免涉及技术细节,但简而言之,此时您将需要一个典型的 Unix 链接编辑器来使用 Clang(阅读:GNU ld 或 Sun ld)。甚至 llvm-ld 也使用底层平台的链接器来链接本机二进制文件。

于 2010-10-30T00:33:51.783 回答
4

跟进:现在是 2016 年,llvm 在自己的链接器上取得了一些稳步进展。它被称为“lld”,网站在这里。 它可以很好地创建 i386 和 x86_64 二进制文件,而针对其他系统的工作正在进行中。

一旦认为 BSD 足够稳定,这应该消除对 GNU 工具的依赖。

于 2016-01-15T16:00:55.847 回答