2013-07-22 70 views
0

請原諒我的第一個問題的任何小錯誤... 雖然反饋仍然讚賞。

我一直在嘗試使用Redpark電纜,以便在iPhone和Arduino(Mini Arduino Pro)之間進行通信。該項目未能通過我的編碼進行構建。 我已經搜索了幾天的解決方案,但其他人的工作沒有爲我工作。
這是我的錯誤:

Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_RscMgr", referenced from:
objc-class-ref in ViewController.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

然而,我發現,這行代碼一直是問題的因素。 (如,如果它被刪除,項目生成會成功,但將無法正常工作。)

Inside ViewController.m -(void)viewDidLoad

rscMgr = [[RscMgr alloc] init];

框架( 「鏈接二進制與圖書館」):ExternalAccessory,UIKit中,MediaPlayer的,CoreGraphics中,基金會。

ViewController.h (With unnecessary stuff removed)
#import <UIKit/UIKit.h> #import "RscMgr.h"
@interface ViewController : UIViewController <RscMgrDelegate> {
RscMgr *rscMgr;
}
@property (nonatomic, retain) RscMgr *rscMgr;
@end


ViewController.m (With unnecessary stuff removed)
#import "ViewController.h"
#import "RscMgr.h"
@implementation ViewController
@synthesize rscMgr;
- (void)viewDidLoad
{
[super viewDidLoad];
rscMgr = [[RscMgr alloc] init];
[rscMgr setDelegate:self];
}
-(void) cableConnected:(NSString *)protocol{
[rscMgr setBaud:9600];
[rscMgr open];
}
@end


鏈接RscMgr.hredparkSerial.h

有兩個redparkSerial.h沒有.m文件和RscMgr.h

+0

您需要鏈接到提供'RscMgr'類的靜態庫或框架,這與鏈接系統框架的方式非常相似。 – trojanfoe

回答

1

這是一個鏈接錯誤。您正確地引用了庫頭文件,因此編譯器可以將單個文件編譯爲目標文件,但是當鏈接程序將它們一起加入應用程序時,它會發現該庫本身不存在。您需要將庫本身添加到您的項目中。標題只描述它的接口,它們不包含庫本身。

要在Xcode的最新版本中執行此操作,通常可以將靜態庫(以.a結尾的文件)拖到項目中。但是你應該確實檢查這個庫的文檔,並按照其推薦的安裝程序。

+0

我確實不明白你想向我解釋什麼。你談論一個靜態庫,.a文件。我沒有看到或不知道它在哪裏。 – user2607107

+0

您已鏈接到GitHub項目的頭文件。另一個文件是'.a'文件。你是怎麼找到這個圖書館的?你只是隨機複製你在網上找到的代碼或者你正在學習一個教程?如果你正在學習一個教程,是不是告訴你如何做到這一點? – Jim

+0

我有一個項目,可以讓我重新創建其他人的作品。他給了我他的整個代碼,項目等。我添加了兩個我沒有加入到我的項目中的文件,redparkSerial.h和RscMgr。所以我想你可以考慮我剛剛對隨機複製代碼示例所說的話。 – user2607107