Macos 什么是叮当声';s相当于——没有未定义的gcc标志?
我正在尝试使用clang在Mac OS X上构建一个项目,但它无法将step链接到Macos 什么是叮当声';s相当于——没有未定义的gcc标志?,macos,gcc,clang,Macos,Gcc,Clang,我正在尝试使用clang在Mac OS X上构建一个项目,但它无法将step链接到ld:unknown option:--no undefined,这意味着要使用gcc构建。 这个选项的叮当声等效于什么?(请不要建议使用gcc而不是clang。) 还有一个更一般的问题,是否有任何资源可以找到gcc和clang(链接器)选项之间的某种“映射”差异 谢谢。OSX使用不同的方法。正如@rubenvb所指出的,它可能是来自。如果您运行man ld,并搜索“undefined”,您将发现以下选项: -未定
ld:unknown option:--no undefined
,这意味着要使用gcc构建。
这个选项的叮当声等效于什么?(请不要建议使用gcc而不是clang。)
还有一个更一般的问题,是否有任何资源可以找到gcc和clang(链接器)选项之间的某种“映射”差异
谢谢。OSX使用不同的方法。正如@rubenvb所指出的,它可能是来自。如果您运行man ld
,并搜索“undefined”,您将发现以下选项:
-未定义的处理
指定如何处理未定义的符号。选项包括:错误、警告、抑制或动态查找。默认值为error
因此,将
-Wl,-no-undefined
替换为-Wl,-undefined,error
。另外,使用原力,卢克。这是一个链接器选项。使用-Wl,…
并阅读链接器的文档(ld
)。使用gcc,您可以添加-v
以查看它实际传递给链接器的选项。您确定OS X使用LLVM的lld
而不是吗?@rubenvb您可能比我的“受过教育的”猜测更正确:)ld-v
说它使用LLVM3.5进行LTO。我读的比我应该读的多。从答案中删除该部分。如果你不介意的话,请用正确的信息编辑它。你的答案和目前的答案一样好,但是为了完整性,请链接到。谢谢你的提示,@Pradhan。我的错,没想到调查那个老男人。它只做了一个更正:不得不使用-Wl,-未定义,错误
-否则它会失败,原因是clang:error:没有这样的文件或目录:“error”
。