Objective-C unter Linux Kompilierfehler

8

Es scheint einige Tutorials zu geben, wie das geht, jedes etwas anders. Ich hoffe, dass jemand die Fehlermeldungen, die ich erhalte, erkennen und in die richtige Richtung lenken kann.

Mein Code, h.m ist:

%Vor%

Bevor ich kompiliere, gebe ich in die Konsole ein:

%Vor%

Ich versuche zu kompilieren mit:

%Vor%

und erhalten:

%Vor%

Kann mir jemand in die richtige Richtung zeigen?

TIA

    
Geremy 11.07.2012, 03:29
quelle

4 Antworten

29

Der Grund für den Verknüpfungsfehler liegt höchstwahrscheinlich in dem Verhalten des Linkers, die Bibliotheken nur zu verknüpfen, nachdem die Symbole vor der Verknüpfung der Bibliothek in der Kompilierung gesehen wurden. Da h.m nach -lgnustep-base erscheint, ist die Bibliothek nicht verknüpft, da die Symbole in der Bibliothek noch nicht gefunden wurden. Sie können den Linker entweder anweisen, die Bibliotheken zu verknüpfen, selbst wenn die Symbole nicht gefunden werden, indem Sie die -Wl,--no-as-needed linker-Option als

verwenden %Vor%

Oder besser: Verschieben Sie die Quelle einfach an den Anfang des Kompilierbefehls als

%Vor%

Das beobachtete Linker-Verhalten soll das Nachschlagen & amp; Verknüpfen von Symbolen der Bibliothek, die möglicherweise nicht benötigt werden, aber dennoch in der Kompilierung verknüpft sind, daher wäre die zweite Option eine empfohlene Vorgehensweise, anstatt die Option -Wl, --no-as-needed linker hinzuzufügen.
Hoffe das hilft!

    
another.anon.coward 11.07.2012, 04:20
quelle
9

Sie müssen auf libobjc verlinken. Die Lösung ist ziemlich einfach. kompilieren Sie einfach mit:

%Vor%     
andyvn22 11.07.2012 03:42
quelle
5

Sie müssen auch die Link-Flags angeben:

%Vor%     
user2412166 23.05.2013 05:14
quelle
2

Diese Methode scheint gut zu sein:

%Vor%     
leo 03.03.2013 09:15
quelle

Tags und Links