首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >编译期间未使用的参数:‘-fuse=lld’

编译期间未使用的参数:‘-fuse=lld’
EN

Stack Overflow用户
提问于 2022-09-19 23:55:33
回答 1查看 76关注 0票数 0

我已经成功地从源代码构建了clang和lld,这两个都现在可以在我的./llvm-project/build/bin目录下使用。

lld文档之后,我现在试图将-fuse= ld命令行指令传递给clang,以强制它使用ld而不是系统的默认链接器(如果我没有弄错的话,它就是GNU ld)如下:

代码语言:javascript
运行
复制
../llvm-project/build/bin/clang -fuse-ld=lld -c test.c

但我收到这样的警告:

代码语言:javascript
运行
复制
clang-16: warning: argument unused during compilation: '-fuse-ld=lld' [-Wunused-command-line-argument]

我想这意味着lld没有被用作链接器,尽管我要求它。

我做错了什么?

我在Ubuntu22.04.1 LTS x86_64上,我使用的是clang版本16.0.0和lld 16.0.0。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-24 22:50:52

我做错了什么?

这是:clang -fuse-ld=lld -c test.c是一个编译命令。它不执行任何链接。

这个论点:-fuse-ld=lld是告诉编译器驱动程序在链接时使用哪个链接器。

你告诉司机:

  1. 不进行链接( -c参数)和
  2. 在同一个命令中使用lld链接

驱动程序别无选择,只能忽略您的第二条指令,因为它不会执行任何链接,这就是警告的意义所在。

您可以安全地忽略此警告,但更好的解决方案是只将-fuse-ld=lld参数传递到链接阶段,而不是任何编译阶段。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73780321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档