链接器命令失败,退出代码为 1 - 重复符号 __TMRbBp
Posted
技术标签:
【中文标题】链接器命令失败,退出代码为 1 - 重复符号 __TMRbBp【英文标题】:Linker command failed with exit code 1 - duplicate symbol __TMRbBp 【发布时间】:2016-11-01 17:27:47 【问题描述】:自从我更新到 Xcode 8.1 后,我无法存档,也无法在发布模式下运行(在调试模式下它工作)。错误是有几个“架构 arm64 的重复符号”并且都是“重复符号 __TMRbBp”。那是什么?
【问题讨论】:
【参考方案1】:这似乎是 Swift 中的一个错误。看 discussion on Apple developers portal
据说在即将发布的Xcode版本中修复了。 但目前有临时解决方法:
转到您的目标Build Settings
并将Reflection Metadata Level
标志设置为None
【讨论】:
如果您使用的是 Cocoapods,请参考***.com/a/47114775/5854394【参考方案2】:不要双击 Project.xcodeproj 来启动您的 xcode 项目。相反,请关闭您的项目并打开 xcworkspace。
File -> Close Workspace
File -> Open -> Search your project folder for Project.xcworkspace
我所有的错误都消失了。
【讨论】:
非常感谢!这很明显,我创建了一个 Podfile 并错误地打开了类型为 .xcodeproj 而不是 .xcworkspace 的文件。【参考方案3】:我在 Xcode 8.1 上存档时遇到了同样的问题。
X 代码版本:版本 8.2.1 (8C1002)
以下修复于 2019 年 3 月生效
1) 转到项目并选择您的项目
2) 选择构建设置 -
搜索“启用位码”设置选项为“否”
3) 大部分版本都会修复此问题,少数其他 XCode 版本也尝试此选项,
搜索“反射元数据级别”将选项设置为“无”
【讨论】:
【参考方案4】:我在版本 9.2 (9C40b) 中遇到过类似问题,解决方法是
0) Close Xcode
1) Open project folder in terminal
2) pod update
3) open .
4) open project by clicking Project.xcworkspace
【讨论】:
【参考方案5】:令人惊讶的是,在某些情况下,简单地清洁产品对我有用。
产品/清理 (Shift+Cmd+K) 产品/清理构建文件夹 (Alt+Shift+Cmd+K)在查看其他解决方案之前先尝试快速修复。
【讨论】:
【参考方案6】:1.关闭您的项目:完全退出 Xcode。 2.转到您的项目位置:您将在根文件夹中找到两个具有不同扩展名的文件: Appname.xcodeproj 和 Appname.xcworkspace
现在通过双击扩展名为 xcworkspace.(***Appname.xcworkspace*)**
的文件打开您的项目您的项目将在 xcode 中打开。 现在再次运行您的项目。
如果您在安装 pod 时密切注意,firebase 会明确在安装 pod 后使用 your-project.xcworkspace 打开您的项目 firebaseios Setup
$ cd your-project directory
$ pod init
添加到 Podfile
pod 'Firebase/Core'
最后:
$ pod install
$ open your-project.xcworkspace
不要忘记将 firebase 添加到您的 AppDelegate
【讨论】:
【参考方案7】:如果您使用的是 Ionic 以及 Push 和 Console 插件,那就是问题所在。删除cordova控制台插件(已弃用),错误就会消失。
链接器错误是说库被复制了,事实上这是真的,因为控制台插件已经在cordova-ios 4.5+中
我花了几个小时才弄明白!
【讨论】:
【参考方案8】:就我而言
-
选择您的项目(在我的情况下,我有 2 个目标)
转到构建阶段
编译源代码
检查每个目标上的项目数是否相同(我的不同)
添加丢失的文件/删除重复的文件
问题解决
【讨论】:
很好的答案。我在我的 XCode 项目中添加了一个新目标。我没有为旧文件选择“目标成员资格”,但 XCode 自动将(我不想要的文件)添加到Compile Sources
列表中。这导致了我重复的符号。已移除。工作。轰隆隆!【参考方案9】:
我最近在创建一个新项目并向项目中添加了一些 pod(特别是 AlamoFire)时遇到了这个问题。困扰了几个小时左右重新创建项目(它是新的)几次。在这里尝试了所有方法,但没有运气。
最终我发现这是因为当我通过命令行“open myProject.xcworkspace”打开工作区时,XCode V10.1 也打开了旧项目文件以及新的 pod 创建的工作区,之后我重新打开了项目做“pod install”
在我进行“pod install”之前,在退出 XCode 之前关闭所有项目为我修复了所有问题。
【讨论】:
【参考方案10】:关闭你的项目然后打开xcode转到文件->打开搜索你的项目并打开它。这对我有用
【讨论】:
【参考方案11】:由于删除了一些文件,我收到此错误。对我来说,简单地克隆我的项目就可以了。
【讨论】:
【参考方案12】:对于那些无法让 Thorax 解决的问题,我所做的是关闭 Xcode,在命令行上运行 pod update
,然后重新打开 .xcworkspace 文件。之后,我就能够构建并运行该项目了。
我正在使用 Firebase Cocoapod 和 Xcode 9.1 版。
【讨论】:
【参考方案13】:我在 Targets 的 Build Phases 中从 Compile Sources 中删除了文件。我添加了main.m
,它起作用了。
【讨论】:
【参考方案14】:在 Xcode 10.1 中遇到了同样的问题,并且能够解决它。在路径Project Target > Build Setting > No Common Blocks
,我把它改成了No
。
【讨论】:
【参考方案15】:当我向我的项目添加框架时,我遇到了类似的问题。
我已通过删除框架并通过将框架文件拖放到项目框架文件夹并选择“如果需要复制项目”选项再次将框架添加到项目来解决该问题。
【讨论】:
以上是关于链接器命令失败,退出代码为 1 - 重复符号 __TMRbBp的主要内容,如果未能解决你的问题,请参考以下文章
错误:链接器命令失败,退出代码为 1(使用 -v 查看调用):在 Macbook [重复]
clang++:错误:链接器命令失败,退出代码为 1 Qt Android
快速链接器命令失败,退出代码为 1 Google Maps iOS Util pod install