Software > Coding

GEM Applikation erstellen

<< < (4/5) > >>

Arne:

--- Zitat von: mfro am Di 16.04.2013, 21:35:57 ---Ich kann da keine Fehler erkennen. Läuft ein einfacher Dreizeiler?

--- Ende Zitat ---
Hmmm... ich glaube da hast Du was gefunden: Ein Hello world terminiert auch mit dem #35.

--- Code: ---#include <stdio.h>

extern int main(int argc, char* argv)
{
printf("Hello world!\n");
return 0;
}

--- Ende Code ---
Kommen halt zwei Warnings, daß argc und argv nicht genutzt werden... aber sonst: TOS Error #35.

Deutet das darauf hin, dass PCSTART.O und/oder die Libs defekt sind?
Habe PC von den drei Originaldisks problemlos installieren können und dann die beiden Update 1.1 Disks drüberinstalliert.

mfro:

--- Zitat von: Arne am Mi 17.04.2013, 07:14:44 ---
--- Zitat von: mfro am Di 16.04.2013, 21:35:57 ---Ich kann da keine Fehler erkennen. Läuft ein einfacher Dreizeiler?

--- Ende Zitat ---
Hmmm... ich glaube da hast Du was gefunden: Ein Hello world terminiert auch mit dem #35.

--- Code: ---#include <stdio.h>

extern int main(int argc, char* argv)
{
printf("Hello world!\n");
return 0;
}

--- Ende Code ---
Kommen halt zwei Warnings, daß argc und argv nicht genutzt werden... aber sonst: TOS Error #35.

Deutet das darauf hin, dass PCSTART.O und/oder die Libs defekt sind?
Habe PC von den drei Originaldisks problemlos installieren können und dann die beiden Update 1.1 Disks drüberinstalliert.

--- Ende Zitat ---

Wie sehen denn deine Compiler-/Linkereinstellungen aus? Compilierst Du vielleicht für einen Prozessor, den Du gar nicht hast?

Ansonsten würde ich behaupten: Lib oder Startupcode defekt.

Arne:
Ich hatte im Linker -J (Create new object file) mit drin. Ohne dieses läuft das "Hello world" PRG nun.
Im meinem ROMEDIT Projekt habe ich es auch drin. Da nutze ich die GEMDOS Funktionen Malloc() und Mfree().
Ohne -J kam gestern für jedes Malloc/Mfree ein Linkerfehler... irgendwas mit INT16 und PC-relativ. Krieg diesen Fehler aber nicht mehr hin.
Jetzt habe ich ACS_LOAD.O mit drin. Mit -J kommt der #35, ohne -J kommt ein Linkerfehler "Undefined symbol '_BasPag'".

mfro:

--- Zitat von: Arne am Mi 17.04.2013, 09:04:37 ---Ich hatte im Linker -J (Create new object file) mit drin. Ohne dieses läuft das "Hello world" PRG nun.
Im meinem ROMEDIT Projekt habe ich es auch drin. Da nutze ich die GEMDOS Funktionen Malloc() und Mfree().
Ohne -J kam gestern für jedes Malloc/Mfree ein Linkerfehler... irgendwas mit INT16 und PC-relativ. Krieg diesen Fehler aber nicht mehr hin.
Jetzt habe ich ACS_LOAD.O mit drin. Mit -J kommt der #35, ohne -J kommt ein Linkerfehler "Undefined symbol '_BasPag'".

--- Ende Zitat ---

Hmmm. Das -J sorgt eigentlich dafür, daß Du das "neue" Pure-C Objektfile-Format verwendest (soweit ich mich erinnere, habe ich das immer benutzt, weil es für den Pure Debugger Voraussetzung ist). Jetzt weiß ich nicht mehr, ob der Linker in der Lage war "altes" und "neues" Objektformat zusammenzulinken. Hast Du möglicherweise einen Mischmasch aus "alten" und "neuen" Objektformaten?

Die Fehlermeldung "PC-relativ" spricht eigentlich dafür, daß eines Deiner Objektfiles eben das ist: PC relativ. Sprünge gehen da nur 16-bit weit und beim Linken war eins der Objekte wohl "zu weit weg".

Wenn eins der Objekte über ein fehlendes _BasPag meckert, hast Du entweder pcstart.o nicht mit dazugelinkt oder eine falsche Reihenfolge.

Arne:
Habe jetzt im PRJ PCSTART.O statt ACS_LOAD.O drin und gebe wegen den 16bit Sprüngen nun im Compiler -P "Use absolute calls".
Nun funktionierts  :D Danke!

Leider schmiert ACS 2 unter STeem mit drei Bomben ab. Selbst bei moderaten Einstellungen (640x400x1, 8MHz, 4MB, TOS 2.06)
Auf meinem MST4, TOS2.06, 8MHz läufts.

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln