升级Xcode 15后,出现大量Duplicate symbols问题

https://developer.apple.com/forums/thread/731090

升级到Xcode 15后,原先Xcode14可以编译的项目出现大量Duplicate symbols,且引用报错指向同一个路径(一般为Framework)下的同一个文件。经过查找相关解决,可通过添加设置改正。

✅解决方案:

Xcode -> Target -> Build Setting -> Other Linker Flags 添加一行"-ld64" 即可解决该问题

原因:

复制代码
Xcode 15 beta includes a new linker, known as `ld_prime`. This has a bunch of benefits, not least being the support for mergeable libraries, per WWDC 2023 Session 10268 [Meet mergeable libraries](https://developer.apple.com/videos/play/wwdc2023/10268/). However, any time you rewrite something that complex you inevitably run into the odd issue. Normally I'd suggest you file a bug about this, but we already have a bug report about this one (r. 110340167).

In the meantime, you should be able to work around it by reverting to the old linker. The linker has two options, `-ld64` and `-ld_prime`, that override its default algorithm for choosing a back end.

Xcode 15测试版包含一个新的链接器,称为ld_prime。根据WWDC 2023 Session 10268 Meet mergeable libraries,这有很多好处,尤其是支持可合并库。然而,每当你重写如此复杂的东西时,你不可避免地会遇到奇怪的问题。通常我建议你提交一个关于这个的bug,但我们已经有了关于这个bug的报告(r.110340167)。

同时,✅您应该能够通过恢复到旧的链接器来解决它✅。链接器有两个选项,-ld64-ld_prime,它们覆盖了用于选择后端的默认算法。

添加设置可以选择使用旧的链接器 而不是默认的新的 -ld_prime 链接器。

⚠️警告:
-ld64 is deprecated, use -ld_classic instead

报警告,换成下面方案:

Xcode -> Target -> Build Setting -> Other Linker Flags 添加一行"-ld_classic" 即可解决该问题

相关推荐
潜龙95271 小时前
第4.3节 iOS App生成追溯关系
macos·ios·cocoa
qiqiqi(^_×)8 小时前
卡在“pycharm正在创建帮助程序目录”
ide·python·pycharm
小妖6668 小时前
vscode 源码编译
ide·vscode·编辑器
张人玉9 小时前
Visual Studio 的常用快捷键
ide·visual studio
玄辰星君10 小时前
【MAC】nacos 2.5.1容器docker安装
macos·docker·nacos
focksorCr11 小时前
在VsCode上使用开发容器devcontainer
ide·vscode·编辑器
Lum110411 小时前
PyCharm高效入门指南大纲
ide·python·pycharm
atwdy15 小时前
MacOS安装linux虚拟机
linux·运维·ubuntu·macos·utm
郭尘帅66615 小时前
IDEA中删除多余的jdk选项 【IDEA2024版】
java·ide·intellij-idea
慌糖15 小时前
IDEA报错“资源找不到”?重启就好了!!?
java·ide·intellij-idea