Clang 的链接器

发布于 2024-09-27 11:08:22 字数 311 浏览 10 评论 0原文

我应该为 Clang 使用哪个链接器?

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

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

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

Which linker do I use for Clang?

If I use Clang or GNU linker (ld) as the linker, I get massive amounts of errors as if I didn't link with the standard library.

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

It seems I have to use g++ in order to link my Clang objects.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

2024-10-04 11:08:22

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

I was running 'clang' instead of 'clang++', meaning it didn't link the C++ standard library.

幸福丶如此 2024-10-04 11:08:22

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

You do not have to use llvm's link editor. I will avoid getting into the technical details, but, in short, you will need to have a typical Unix link editor available to use Clang at this time (read: GNU ld or Sun ld). Even llvm-ld uses the underlying platform's linker to link native binaries.

半透明的墙 2024-10-04 11:08:22

后续:现在已经是 2016 年了,LLVM 在自己的链接器上取得了一些稳定的进展。它的名称为“lld”,网站位于此处。它可以很好地创建 i386 和 x86_64 二进制文件,同时针对其他系统的工作正在进行中。

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

Follow-up: it's now 2016, and LLVM has made some steady progress on their own linker. It's called "lld", and the website is here. It works fine to create i386 and x86_64 binaries, while work is ongoing to target other systems.

This should remove the dependency on GNU tools for BSD systems, once it is considered stable enough.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文