链接器命令失败,退出代码为 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.xcodeprojAppname.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

错误:链接器命令失败,退出代码为 1(使用 -v 查看调用):在 Macbook [重复]

clang++:错误:链接器命令失败,退出代码为 1 Qt Android

快速链接器命令失败,退出代码为 1 Google Maps iOS Util pod install

xcode 中的错误:clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

未找到体系结构 x86_64 的符号