Hallo community,
nach dem ich meine C-Kenntnisse aufgefrischt habe, wollte ich eine langes Vorhaben mal endlich angehen: Objective-C unter Linux und komme zur ersten Frage: Wenn ich aus meinen 2 Testdateien zuerst die Objekt-Dateien erstelle mit:
cc -c Ellipse.m Geo.m
kommen verschiedene Warnmeldungen, wie so was:
Geo.m: In Funktion »main«:
Geo.m:7:4: Warnung: »Ellipse« antwortet möglicherweise nicht auf »+alloc« [standardmäßig aktiviert]
Geo.m:7:4: Warnung: (Nachrichten ohne passende Methodensignatur [standardmäßig aktiviert]
Geo.m:7:4: Warnung: werden als »id« zurückgebend angenommen und akzeptieren [standardmäßig aktiviert]
Geo.m:7:4: Warnung: »...« als Argumente.) [standardmäßig aktiviert]
Geo.m:11:4: Warnung: Unverträgliche implizite Deklaration der eingebauten Funktion »printf« [standardmäßig aktiviert]
linke ich dann diese zu einer Ausführbaren Datei mit:
cc -o Geo Geo.o Circle.o Ellipse.o -lobjc
Wird ohne weitere Ausgaben die Datei „GEO“ erstellt, bei einem ausführen, eben jener, kommt:
Speicherzugriffsfehler (Speicherabzug geschrieben)
Was jemand woran das liegt?
Zur 2. Frage: Jetzt wollte ich das GNUstep mit einbinden (Warum wird das eigentlich nicht so richtig fortgeführt, die Entwicklung damit unter Linux erinnert stark an Windows95-Buttons, zwar gibt es Ansätze, wie Etoile, welches sich schon sehen lassen kann,aber erst in V0.4 vorliegt.Finde die Idee richtig gut (App-Bundle, Interface-Builder usw. -> Ein Programm, spielend portierbar auf MAC, Windows, Linux und umgekehrt, Java ist einfach von der Performance her für wirklich grosse Projekte zu lahm, mit Objective-C sieht das aber anderes aus) …ok ich schweife aus, zurück zu meiner Frage, ich hab eine kleine Testapplikation (mit gorm) geschrieben und wollte GTK2 einbinden mit:
gcc `pkg-config –cflags –libs gtk+-2.0` -lgnustep-base -fconstant-string-class=NSConstantString -o “./myprogram” $(find . -name ‘\*.m’) -I /usr/include/GNUstep/ -L /usr/lib/GNUstep/ -std=c99 -O3
jedoch kommt diese Fehlermeldung:
/usr/include/gnustep/: file not recognized: Is a directory
collect2: Fehler: ld gab 1 als Ende-Status zurück
Klar, es ist ein Directory und soll alle Unterverzeichnisse und Include-Dateien darin mit einbinden, wie bekomme ich das hin???
Noch zur Info: Meine Entwicklungsumgebung ist Fedora mit xfce4 (wer die post im Linux-Thread mitbekommen hat, habe das als 2. System neben Debian installiert(Xubuntu weg) und bin abgesehen von dem Mousepad, welches nicht funktioniert wie sollte, sehr begeistert (lvm und Verschlüsselung im Installer waren super einfach + da ich ein 2. Monitor 24" (kann auf dem kleinen Laptop-Ding nicht arbeiten und meine Lieblingstastatur angeschlossen habe) stellte Fedora alles perfekt ein,was ich bis heute in der Art nicht unter Ubuntu noch unter Debian so hinbekommen habe (perfekte Monitor Aufteilung), Hut ab …ok ich schweife schon wieder ab.
Zurück zum Thema, wer kann mir bei den oben genannten Problemen helfen??
Gruß XXD
P.S. An wer-weiss-was, vielleicht sollte man Objective-C mal mit aufnehmen (ist immerhin Platz 3 aller benutzer Sprachen), hab es jetzt hier ins C-Forum geschrieben, da ja die Fragen schon recht „C“-spezifisch sind.