我有一個奇怪的鏈接器問題。我有一些代碼,看起來像這樣:鏈接器錯誤從Objective-C++調用C函數
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」代碼是第三方代碼,一個h和.c文件,我導入像這樣:
#import "swrve.h"
任何幫助表示讚賞! 感謝
你還導入在項目中的鏈接?轉到目標的屬性,然後在摘要頁面上打開「鏈接的框架和庫」。 'swrve'圖書館應該在那裏;如果不是,請將其添加並再次嘗試編譯。 – dasblinkenlight 2012-02-17 20:07:39
該庫不是一個靜態的lib/framework,它只是一個.c和.h文件。 (我已經更新了我的問題以反映這一點)。 – 2012-02-17 20:19:32