我已经成功地从源代码构建了clang和lld,这两个都现在可以在我的./llvm-project/build/bin目录下使用。
在lld文档之后,我现在试图将-fuse= ld命令行指令传递给clang,以强制它使用ld而不是系统的默认链接器(如果我没有弄错的话,它就是GNU ld)如下:
../llvm-project/build/bin/clang -fuse-ld=lld -c test.c
但我收到这样的警告:
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。
发布于 2022-09-24 22:50:52
我做错了什么?
这是:clang -fuse-ld=lld -c test.c
是一个编译命令。它不执行任何链接。
这个论点:-fuse-ld=lld
是告诉编译器驱动程序在链接时使用哪个链接器。
你告诉司机:
-c
参数)和lld
链接驱动程序别无选择,只能忽略您的第二条指令,因为它不会执行任何链接,这就是警告的意义所在。
您可以安全地忽略此警告,但更好的解决方案是只将-fuse-ld=lld
参数传递到链接阶段,而不是任何编译阶段。
https://stackoverflow.com/questions/73780321
复制相似问题