ios - Clang 错误“架构 x86_64 的重复符号”
问题描述
这个错误在堆栈中列出了很多,常见的修复似乎对我不起作用。编译 Obj-C MacOS Xcode 应用程序时出现错误:“架构 x86_64 的重复符号”。Xcode 11.5 和 MacOS Catalina 10.15.5。据说有 15 个重复符号,其中 15 个错误之一看起来像:
duplicate symbol '_visual10Window' in:
/Users/tempuser/Library/Developer/Xcode/DerivedData/test-cdicjztmkktfomehwaphnzhbozgh/Build/Intermediates.noindex/test.build/Debug/test.build/Objects-normal/x86_64/Test.o
/Users/tempuser/Library/Developer/Xcode/DerivedData/test-cdicjztmkktfomehwaphnzhbozgh/Build/Intermediates.noindex/test.build/Debug/test.build/Objects-normal/x86_64/MainView.o
我的 MainView.h 和 MainView.mm 不包含任何 visual10Window 的定义。
我的 Test.h 有(删除这个会导致使用未声明的标识符错误)。
@class Visual10;
Visual10 *visual10Window;
和 Test.mm 包括
#import "Visual10.h"
我正在从 Test.mm 的菜单项中调用 xib
- (void)Visual10Menu:(id)sender {
if (!visual10Window) {
visual10Window = [[Visual10 alloc] initWithWindowNibName:@"Visual10"]; }
[visual10Window showWindow:self]; }
我尝试了常见的建议,包括:
- 安装和重新安装 Pod(本项目不使用 Pod)
- 检查错误的导入,例如导入“.m”而不是“.h”
- 从其他链接器标志中删除 -all_load
- Build Settings / No Common Blocks 设置为 NO
- 检查重复文件构建阶段/编译源(无)
- 尝试从其他链接器标志添加和删除 -ObjC
- 尝试构建设置/启用可测试性设置为否
- 尝试清除派生数据
这些都不起作用,仍然会出现重复的符号错误。
解决方案
推荐阅读
- ios - 如何在原生 iOS 应用中打开 Facebook 页面
- react-native - 如何防止设备缩放级别对我的应用程序产生影响?
- python - 我怎样才能提高地形生成器的性能我得到 40 FPS
- json - 使用 JQ 合并两个 Json 文件
- flutter - Flutter web:无法加载资源:net :: ERR_NAME_NOT_RESOLVED
- java - 如何使用 jlink 将外部库添加到自定义运行时映像?
- mongodb - Mongo 不会启动
- java - ./mvnw spring-boot:run 命令显示“这次 Spring 是意外的”消息
- python - 无法导入名称“read_data”
- javascript - 如何通过基于图像缩略图的锚标记上的 onclick 打开(全屏)图像