【发布时间】:2012-03-09 05:32:03
【问题描述】:
我遇到了一个奇怪的链接器问题。我的代码看起来像这样:
double given_amount = self.modelController.levelCompleteRewardAmount;
swrve_currency_given(swrve, (CFStringRef)@"currencyName", given_amount);
我在两个不同的地方有这段代码:在一个objective-c 和一个objective-c++ 文件中。它在 Objective-C 领域编译得很好,但是 swrve_currency_given() 函数在我的 WGController.mm 文件中导致以下内容:
Undefined symbols for architecture armv7:
"swrve_currency_given(Swrve*, __CFString const*, double)", referenced from:
-[WGController giveTheUserSomeCashForPlayingThisLevel] in WGController.o
ld: symbol(s) not found for architecture armv7
collect2: ld returned 1 exit status
我不完全确定此错误是否与 Obj-C 与 C++ 的事情有关,但它感觉喜欢它。我的理论是它可能认为它是 Obj-C 类的一个函数? 'swrve' 代码是第 3 方代码,一个 .h 和 .c 文件,我正在像这样导入:
#import "swrve.h"
感谢任何帮助! 谢谢
【问题讨论】:
-
您是否也在项目中为链接器导入它?转到目标的属性,然后在摘要页面上打开“链接的框架和库”。
swrve库应该在那里;如果不是,请添加它并再次尝试编译。 -
该库不是静态库/框架,它只是一个 .c 和 .h 文件。 (我已经更新了我的问题以反映这一点)。