Fehler bei Foundation.h
-
21-09-2019 - |
Frage
I Lernen Objective-C in Linux (Ubuntu), aber wenn ich tryed meine Anwendung zu kompilieren, die den Foundation-Header muß ich eine Fehlermeldung bekam, dass die Datei nicht gefunden werden kann, aber ich habe das GNUstep Entwicklungspaket installiert (gnustep- devel). Hier ist mein Code:
// Fraction.h
#import <Foundation/NSObject.h>
@interface Fraction: NSObject {
int numerator;
int denominator;
}
- (void) print;
- (void) setNumerator: (int) n;
- (void) setDenominator: (int) d;
- (void) numerator;
- (void) denominator;
@end
Und hier ist das Konsolenprotokoll:
ubuntu@eeepc:~$ gcc main.m -o frac -lobjc
In file included from main.m:3:
Fraction.h:2:26: error: objc/NSObject.h: No such file or directory
In file included from main.m:3:
Fraction.h:4: error: cannot find interface declaration for ‘NSObject’, superclass of ‘Fraction’
ubuntu@eeepc:~$
Was muss ich tun?
Lösung
GNUstep Installationsprozess für Windows
- Besuchen Sie die URL: http://ftpmain.gnustep.org/pub/ gnustep / Binaries / windows /
- Laden Sie die EXE-Datei gnustep-System-0.19.2-setup.exe
- Dann Herunterladen gnustep-Core-0.19.2-setup.exe
Denken Sie daran, eine Sache, wenn Sie gnustep-System von jeder Version sind das Herunterladen Sie müssen die gleiche Version für gnustep-core herunterladen. Zum Beispiel, wenn Sie gnustep-setup-0.22.1-setup.exe dann heruntergeladen du herunterladen gustep-Core-0.22.1-setup.exe sonst wird Ihr Code nicht ausgeführt haben.
- Installieren zuerst die gnustep-System-0.19.2setup.exe dann gnustep-Core-0.19.2setup.exe installieren. Versuchen Sie nicht, in umgekehrt, um zu installieren.
- Jetzt haben Sie die gnustep für Fenster starten Sie dann gehen Sie zu> Alle Programme> GNUstep> Shell
- Sie nun den Notepad-Editor öffnen und den folgenden Code in Notepad schreiben
#import int main (int argc, const char * argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; NSLog (@"Anil Kumar Yadav has Run the First Objective C program!"); [pool drain]; return 0; }
speichern Sie es als hello.m in Ihrem C: / GNUstep / home / folder Denken Sie daran, folder der Name ist, wenn Sie zum ersten Mal die Shell starten sie die envoirment erstellen und machen Sie einen Ordner mit dem Namen Name Ihres Computers in C: / GNUstep / Home-Ordner. Also nicht panic.Okay sein
- Gehen Sie zu Ihrer Shell und geben Sie den folgenden Befehl gcc -o hallo hello.m -I / GNUstep / System / Library / Headers -L / GNUstep / System / Library / Libraries -lobjc -lgnustep-Basis -konstant-String- class = NSConstantString
- Mit diesem Befehl wird eine hello.exe Datei in Ihrem Ordnerordner erstellen.
- Wieder in der Schale geben Sie den Befehl ./hello.exe
Schließlich können Sie die Ausgabe in der Schale sehen.
Conguratulation schreibt Sie Ihr erstes Ziel C-Programm erfolgreich. Benötigen Sie weitere Erläuterungen Schreib mich: ayadav00009@gmail.com
Andere Tipps
Wie kompilieren Sie es? Für mich erstelle ich eine GNUMakefile
Make-Datei für meine Anwendung (siehe hier ) und dann laufe ich source /usr/share/GNUstep/Makefiles/GNUstep.sh
und dann make
.
Ich habe im Repository durchsucht und dann installierte ich das Fundament lib, jetzt alles funktioniert.
Danke.