Nur um den üblichen Fragen/Verdächtigungen vorzubeugen:
Nein, ich will keine bestehende Apple-Anwendung portieren.
Ich habe auch keine Lust, irgendwas in GNUstep zu entwickeln.
Oh, und Anwendungen mit UserInterface für die Windowskiste will ich auch nicht haben.
Mein Problem ist eigentlich ein ganz einfaches, aber halt ziemlich speziell auf der Windows-Plattform.
Ich möchte quasi an den Wurzeln allen Übels herumspielen und testen, was da so geht. Als Mittel der Wahl soll da der Arbeitsrechner in den Mittagspausen her halten. Deshalb verzichte ich gern auf AppKit, Foundation, IOKit und ähnlichen 'überflüssigen' Kleinkram und bastle hauptsächlich an Instanzen von Object und Kindeskindern herum.
Die Idee dazu überkam mich nach dem Durchforsten von kressevadders Speicherverwaltungsartikel.
Lange Rede, kurzer Sinn: die Windows GCC ärgert mich. Genauer gesagt der linke Linker der Windows GCC. Er mag offenbar eigene Subklassen nicht.
Ich hatte den MinGW 3.4.5 getestet, einmal standalone, einmal aus dem GNUstep System.
Der Erfolg ist immer der Gleiche: ich erhalte Fehler.
Mal das Codeschnippselchen der main.m:
Alles anzeigen
Wie geschrieben, so wird dat nix.
Ein Gegentest:
Alles anzeigen
Die Ausgabe lautet:
(wer hätte das gedacht?)
Ich kämpfe also nach wie vor mit dem Fehler:
Dieser scheint ganz offensichtlich mit meiner eigenen Klasse und dem Linker zusammen zu hängen.
'Vergesse' ich, gegen die Objective-C runtime zu linken, gesellen sich zu __objc_class_name_OCObject noch undefinierte Referenzen zu __objc_get_class und __objc_msg_lookup.
Ich erstelle die gesamten Sourcen mittels VIM für Windows und möchte die Resultate einfach nur kompiliert bekommen.
Wer hat nen Tipp oder nen Link zu nem funktionsfähigen Objective-C Compiler unter Windows OHNE die ganzen Frameworks dran?
Wer hat obendrein noch einen Tipp für ein Compilerflag, mit dem ich ihm die Suche nach dieser blöden WinMain abgewöhnen kann?
Nein, ich will keine bestehende Apple-Anwendung portieren.
Ich habe auch keine Lust, irgendwas in GNUstep zu entwickeln.
Oh, und Anwendungen mit UserInterface für die Windowskiste will ich auch nicht haben.
Mein Problem ist eigentlich ein ganz einfaches, aber halt ziemlich speziell auf der Windows-Plattform.
Ich möchte quasi an den Wurzeln allen Übels herumspielen und testen, was da so geht. Als Mittel der Wahl soll da der Arbeitsrechner in den Mittagspausen her halten. Deshalb verzichte ich gern auf AppKit, Foundation, IOKit und ähnlichen 'überflüssigen' Kleinkram und bastle hauptsächlich an Instanzen von Object und Kindeskindern herum.
Die Idee dazu überkam mich nach dem Durchforsten von kressevadders Speicherverwaltungsartikel.
Lange Rede, kurzer Sinn: die Windows GCC ärgert mich. Genauer gesagt der linke Linker der Windows GCC. Er mag offenbar eigene Subklassen nicht.
Ich hatte den MinGW 3.4.5 getestet, einmal standalone, einmal aus dem GNUstep System.
Der Erfolg ist immer der Gleiche: ich erhalte Fehler.
Mal das Codeschnippselchen der main.m:
Quellcode
- // for the windows api, not really needed at all except for the WinMain function
- #import <windows.h>
- #import <stdio.h>
- #import "OCObject.h"
- int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
- {
- // Just to keep the compiler quiet...
- // Otherwise it complains that no WinMain@16 was found...
- }
- int main( int arc, const char *argv[] ) {
- OCObject* rootObject;
- rootObject = [[OCObject alloc] init];
- printf("qwerty\n");
- [rootObject release];
- return 0;
- }
Wie geschrieben, so wird dat nix.
Ein Gegentest:
Quellcode
- // for the windows api, not really needed at all except for the WinMain function
- #import <windows.h>
- #import <stdio.h>
- #import "OCObject.h"
- int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
- {
- // Just to keep the compiler quiet...
- // Otherwise it complains that no WinMain@16 was found...
- }
- int main( int arc, const char *argv[] ) {
- Object* rootObject;
- rootObject = [[Object alloc] init];
- printf("qwerty\n");
- [rootObject free];
- return 0;
- }
Die Ausgabe lautet:
C:> a.exe
qwerty
C:>
(wer hätte das gedacht?)
Ich kämpfe also nach wie vor mit dem Fehler:
Dieser scheint ganz offensichtlich mit meiner eigenen Klasse und dem Linker zusammen zu hängen.
'Vergesse' ich, gegen die Objective-C runtime zu linken, gesellen sich zu __objc_class_name_OCObject noch undefinierte Referenzen zu __objc_get_class und __objc_msg_lookup.
Ich erstelle die gesamten Sourcen mittels VIM für Windows und möchte die Resultate einfach nur kompiliert bekommen.
Wer hat nen Tipp oder nen Link zu nem funktionsfähigen Objective-C Compiler unter Windows OHNE die ganzen Frameworks dran?
Wer hat obendrein noch einen Tipp für ein Compilerflag, mit dem ich ihm die Suche nach dieser blöden WinMain abgewöhnen kann?
«Applejack» "Don't you use your fancy mathematics to muddle the issue!"
Iä-86! Iä-64! Awavauatsh fthagn!
Iä-86! Iä-64! Awavauatsh fthagn!
kmr schrieb:
Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P