Hier habe ich also das grundlegende "Hallo Welt" -Skript für Objective-C. Ich habe Ubuntu auf meinem Laptop und möchte Ubuntu verwenden, um grundlegende Ideen, zusätzliche Klassen oder alles, was es wert ist, für eines meiner aktuellen Projekte unterwegs zu kompilieren. Auf diese Weise kann ich überall ein wenig codieren und muss nicht immer auf meinem iMac sein.
Jetzt ist meine einzige Frage, wie ich diesen Code im Terminal erstellen und ausführen kann. Offensichtlich ist es nicht so wichtig, da ich für iOS und OSX codiere. Der einzige Code, der angezeigt wird, ist etwas, das die SDK- oder Cocoa-Skripte nicht aufruft. Grundsätzlich sollten also nur grundlegende Textbefehle wie "NSLog" oder "NSLog" angezeigt werden Was auch immer, Sie bekommen genau das, was ich versuche zu tun, was ich will. Auf diese Weise kann ich zumindest nach kleinen Fehlern suchen.
Ich habe mich umgesehen und mehrere Hilfen für Standard-Shell-Skripte gefunden, die nach meinem Verständnis das gcc-Verzeichnis oder etwas Ähnliches aufrufen. Ich habe meinen eigenen Ordner für Objective-C-Projekte erstellt, der sich in meinen Dokumenten befindet, und ich hatte keine Ahnung, ob dies meine Fähigkeit beeinträchtigt, die Datei mit den Terminalbefehlen auszuführen, die ich versucht habe oder nicht, aber falls ich das speichere Projekte in:
Home> Dokumente> Ziel-C> helloworld.m
Auch beim Ausführen der Befehlszeile:
gcc -o helloworld.m
oder dieses
gcc -I/home/caseyerdmann/Documents/Objective-C/helloworld.m
oder eine beliebige Version dieser Befehlszeile Ich erhalte diesen Fehler:
gcc: fatal error: no input files
compilation terminated.
Ich glaube, ich habe alle Compiler-Dateien installiert, aber ich bin nicht gegen ein vollständiges Tutorial, was auch immer das zum Laufen bringt. Um nun zu klären und eine visuelle Hilfe für euch zu sammeln, damit ich besser helfen kann, befindet sich meine Textdatei in meinen Dokumenten:
Und Sie können das Verzeichnis, in dem es sich befindet, visuell sehen. Wenn ich nun einen der oben genannten Befehle ausführe, die ich im Terminal ausprobiert habe, ergibt sich folgendes Ergebnis:
Es ist egal, welchen Befehl ich benutze, es ist immer so. Ich hoffe, das hilft ein bisschen mehr, um eine Antwort auf meine Situation zu geben. Ich bin nicht gegen ein vollständiges Tutorial und muss meine Datei an anderer Stelle speichern oder andere Änderungen vornehmen. Tatsächlich wäre ich dankbar! Ich würde das einfach gerne zum Laufen bringen.
Ich habe einige Nachforschungen angestellt und festgestellt, dass die Antworten darauf mir bereits helfen, das Skript hello.m auszuführen, das in den GNUstep-Bibliotheken enthalten ist. Dies ist nicht das, was ich versuche. Da ich jedoch Probleme habe, das Standardskript zum Ausführen zu bringen, denke ich, dass ich möglicherweise auch ein anderes Problem habe, werde ich weiter nachforschen, ob ich dieses Skript zum Ausführen bringen kann. In der Zwischenzeit wird jede Hilfe geschätzt!
UPDATE: Ich habe einen neuen Befehl ausprobiert und ein neues Ergebnis erzielt, obwohl es auch beim Kompilieren nicht erfolgreich war. Ich denke, es kann helfen, andere zu beantworten, um dies zu beantworten. Folgendes habe ich versucht:
gcc -o helloworld.m -lobjc
und das war das Ergebnis:
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: ld returned 1 exit status
-o
Option besteht darin, den Namen der zu produzierenden ausführbaren Datei anzugeben (die Standardeinstellung ista.out
). Sie sollten schreiben,gcc helloworld.m -o HelloWorld -lobjc
woHelloWorld
der Name der ausführbaren Datei steht.helloworld.m
Antworten:
Installieren Sie in Ubuntu 14.04 LTS den GNU Objective-C-Compiler:
Überprüfen Sie die Version:
muss so etwas sagen wie:
Installieren Sie die GNUStep-Entwicklungsbibliotheken (entspricht Cocoa unter Macosx):
Es sollte funktionieren und kompilieren mit:
Sie sollten laufen mit:
quelle
Ich habe ein wenig recherchiert und eine Lösung gefunden, die jetzt funktioniert. Ich werde wahrscheinlich eine neue Frage stellen, um zu sehen, ob es eine Möglichkeit gibt, dies zu verkürzen. Aber dies kompiliert erfolgreich meinen Code. Vielen Dank an alle, die uns geholfen haben. Ich habe definitiv einige neue Dinge gelernt.
quelle
-lobjc
Ihnen fehlt der Name für die ausführbare Datei. Der Befehl sollte also wie folgt lauten:
Geben Sie nach der Kompilierung Folgendes ein
-o hello
Gibt den Namen der Ausgabedatei an, die Sie nach dem Kompilieren der Quelle erstellen möchten. (In diesem Fall lautet der Name der Ausgabedateihello
.) Dadurch wird eine ausführbare Datei (mit dem Namenhello
) erstellt, die Sie dann direkt vom Terminal aus ausführen können. Wenn Sie-o
beim Kompilieren keine Option verwenden, lautet der Name der ausführbaren Dateia.out
standardmäßig. Um dieses Programm auszuführen, müssen Sie jetzt eingebenBei den obigen Befehlen wird davon ausgegangen, dass Sie sich bereits am Speicherort der Quelldateien befinden. Es können jedoch auch die Quelldatei und die Zielausgabedatei als Verzeichnis angegeben werden. Zum Beispiel:
kompiliert eine C-Quelldatei auf Ihrem Desktop und legt die ausführbare Binärdatei in einem
Projects
Ordner in Ihrem Home-Verzeichnis ab. Geben Sie Folgendes ein, um diese ausführbare Datei auszuführen.Sie können auch zuerst in das Verzeichnis wechseln, in dem sich die Quelldatei befindet, und die obigen Befehle ausführen. Sie müssen keine Pfadnamen angeben, wenn Sie sich in demselben Verzeichnis befinden, in dem sich Ihre Quelldatei befindet.
Ich frage mich, warum Ihre Dateierweiterung
.m
statt ist.c
.quelle
sollte das ausführbare Ziel c erzeugen, wenn der Compiler installiert ist. Wenn nicht, installieren Sie es:
quelle