我正在使用iOS 通用框架 模板。
我创建了框架并将它们作为子项目添加到另一个项目中。并将框架二进制文件添加到项目中。
在我的框架中有一些常量
const float kToolbarHeight = 45;
当我尝试构建我的项目并包含适用于 iphone 模拟器 (i386) 的框架时,出现链接器错误:
ld: 14 duplicate symbols for architecture i386 clang: error: linker command failed with exit code 1 (use -v to see invocation)
但是当我为设备构建它时 - 没有任何链接器错误。
我试图从 Project 中排除 subProject(我的框架),并且只保留二进制文件,但没有任何效果。
我正在尝试将目标中的架构更改为i386
和$(VALID_ARCHS)
,如该问题中所述,但没有任何效果。
如何为 iOS 模拟器构建框架,我应该使用哪些目标设置?
更新:当我在头文件中将常量定义为 extern 时,问题已解决。
// MyView.h
extern const float kToolbarHeight;
// MyView.m
const float kToolbarHeight = 45;
但为什么?模拟器和手臂构建有什么区别?