2012-03-24 17 views
2

ich diese Bibliothek verwenden: https://github.com/robbiehanson/CocoaAsyncSocketGCDAsyncUdpSocket nicht kompiliert für iOS

Es gibt Beispiele für TCP auf dem iPhone, aber nicht UDP. Ich denke, dass alles gleich sein sollte. Hier ist mein Code:

#import <UIKit/UIKit.h> 
@class GCDAsyncUdpSocket; 

@interface ThirdViewController : UIViewController 
{ 
    GCDAsyncUdpSocket *udpSocket; 
} 

.m:

#import "ThirdViewController.h" 
#import "DDLog.h" 
#import "DDTTYLogger.h" 
#import "GCDAsyncUdpSocket.h" 

static const int ddLogLevel = LOG_LEVEL_VERBOSE; 

@implementation ThirdViewController 

- (void)viewDidLoad 
{ 
    [DDLog addLogger:[DDTTYLogger sharedInstance]]; 
    udpSocket = [[GCDAsyncUdpSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()]; 
} 

Aber beim Compilieren ich die Fehlermeldungen erhalten:

undefinierte Symbole für Architektur i386: "_OBJC_CLASS _ $ _ DDLOG",

referenziert von: objc-class-ref in ThirdViewController.o "_OBJC_CLASS _ $ _ DDTTYLogger", verwiesen aus: objc-Klasse-ref in ThirdViewController.o "_OBJC_CLASS _ $ _ GCDAsyncUdpSocket", referenziert von: objc-Klasse-ref in ThirdViewController.o ld: Symbol (e) nicht für Architektur i386 gefunden

Was ist los? Beispiele aus der Bibliothek, die ohne Fehler kompiliert wurden.

Antwort

2

Sie haben CFNetwork.framework zu verknüpfen oder wenn es Sie sind propably auf Automatische Referenzzähler arbeiten, Turon off ARC für GCDAsyncUdpSocket mit -fno-objc-Bogen

+0

Danke für Ihre Antwort! Ich benutze keine ARC. Über das CFNetwork.framework habe ich vergessen, jetzt einen Link hinzugefügt, aber der Fehler ist geblieben. – ifau

+0

jetzt haben Sie wahrscheinlich ein Problem mit DDTTYLogger, haben Sie AvFoundation Bibliothek in Ihrem Projekt? Haben Sie Header-Dateien von DDLog mit Ihren Kompilierquellen verknüpft? – mientus

+0

Ow, ich habe andere Fehler in den Build-Einstellungen gefunden :) – ifau

0

(Build Phasen >> Link Binary mit Bibliotheken) Fügen Sie CocoaLumberjack als optionale Abhängigkeit hinzu.