链接静态库时重复extern常量

时间:2014-06-10 01:41:03

标签: objective-c xcode static-linking

我写了libraryA。

//classA.h
extern NSString *const ConstantString;

//classA.m
NSString *const ConstantString = @"aaa";

我写了libraryB

//classB.m
#import <libraryA/classA.h> 

还将 libraryA.a 添加到libraryB - &gt;构建阶段 - &gt;链接二进制文件库。

然后在我的主项目中,我需要一起导入classA和classB。所以我将 libraryA.a libraryB.a 添加到主项目中 - &gt;构建阶段 - &gt;链接二进制文件库。

链接时出现问题。它表示ConstantString的重复符号。

那么,如何修复呢?

1 个答案:

答案 0 :(得分:0)

首先感谢Jason的评论。 我想在与同事讨论后找到了正确的解决方案。编译后,libraryB不应链接到libraryA。应在编译主项目后进行链接。 我从libraryB中删除了libraryA - &gt;构建阶段 - &gt;链接二进制文件库。错误永远不会再显示。