0

我正在使用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;

但为什么?模拟器和手臂构建有什么区别?

4

1 回答 1

2

当我在头文件中将常量定义为 extern 时,问题得到了解决。

// MyView.h

extern const float kToolbarHeight;

// MyView.m

const float kToolbarHeight = 45;

关于外部

于 2013-04-28T06:28:37.360 回答