我在 Xcode 16.0 中收到一条警告,提示“-ld_classic 已弃用,将在未来版本中删除”。如果我应该替换 ld_classic,我不知道,尽管如果我愿意,我可以简单地删除它。它可以在 Xcode Target -> Build Settings -> Other Linker Flags 中找到。
什么是ld经典?如何处理警告?我在 ld-classic 上找到的唯一链接和可能的解决方案是:https://github.com/xamarin/xamarin-macios/issues/20711
它说“[dotnet]将经典链接器的用法更改为选择加入。(#21231)”,但这似乎是参考 Xamarin。
有人可以告诉我这个问题吗?
PS。 Stack Overflow 不允许我添加 ld_classic 作为标签,因为我没有足够的声誉点。
我也设置了这个标志。这样做的目的是强制 Xcode 使用旧的链接器,而不是 2023 年 9 月随 Xcode 15 发布的新链接器。
就我而言,该标志本身已于 2023 年 8 月左右添加。我已使用 Xcode 发行说明中的以下引用来注释该更改:
使用弱定义符号的二进制文件在 iOS 14/macOS 12 或更早版本上运行时会崩溃。这主要影响 C++ 项目,因为它们广泛使用弱符号。 (114813650) (FB13097713) 解决方法:将最低部署目标提高到 iOS 15、macOS 12、watchOS 8 或 tvOS 15,或将 -Wl,-ld_classic 添加到 OTHER_LDFLAGS 构建设置。
链接https://developer.apple.com/documentation/xcode-release-notes/xcode-15-release-notes#Linking
我记得,我的项目没有崩溃,但保留经典链接器当时解决了一些与构建相关的警告。
也许您可以尝试删除该标志并根据支持的操作系统版本和依赖项测试应用程序行为。