[C / DOS oder Windows] Compiler gesucht

Hallo Leute!

Ich habe versucht, den GNU C-Compiler unter DOS/Windows zum Laufen zu bekommen.
Dafür habe ich mir von http://www.gnu.org die Cygwin-Umgebung sowie den Compiler besorgt.

Beim Versuch, ein simples C-Programm zu kompilierten (gcc -o hallowelt hallowelt.c) entsteht eine Endlosschleife, welche ständig ausgibt, daß ‚cpp‘ die Option ‚-remap‘ nicht kennen würde. Rufe ich cpp direkt auf (ohne Parameter), kommt es zum gleichen Effekt.

Kann mir jemand einen Tip geben, wodurch dies verursacht wird? Ist meine Cygwin-Installation evtl. fehlerhaft?

Generell suche ich einen C-Compiler, welcher mir unter Linux und Windows binär kompatible Datenstrukturen erzeugt. Ich meine damit nicht den Programmcode, sondern die Darstellung bestimmter Variablentypen im Speicher (insbes. die Anzahl der verwendeten Bytes).

CU
Markus

hey,

versuchs doch mal mit dem gratis Borland C++Compiler
http://www.borland.com/downloads/#cppbuilder

gruss von einem Borlandianer

versuchs doch mal mit dem gratis Borland C++Compiler
http://www.borland.com/downloads/#cppbuilder

Diesen Compiler gibt es aber nicht für Linux, oder?
Es ist also eher unwahrscheinlich, daß er unter DOS zufällig zum Linux-GCC kompatiblen Code generiert. Ich hätte daher lieber denselben Compiler für DOS/Windows und Linux.

Ich werde es dennoch am Montag einmal ausprobieren. Melde mich dann mit dem Ergebnis wieder. Danke erst einmal!

CU
Markus

versuchs doch mal mit dem gratis Borland C++Compiler
http://www.borland.com/downloads/#cppbuilder

Der Borland-Compiler erzeugt leider auch keinen kompatiblen Code. Insbesondere ist er - zumindest in der konstenlosen Version - nicht in der Lage, mit Makefiles umzugehen.

Dennoch habe ich eine Lösung gefunden:
Ich behalte die vorkompilierte Windows-Version des betreffenden Programms bei und setze unter Linux beim GCC die Option -malign-double , um kompatible Datenstrukturen im Speicher zu erhalten.

CU
Markus

Hallo Markus

Der Borland-Compiler erzeugt leider auch keinen kompatiblen
Code. Insbesondere ist er - zumindest in der konstenlosen
Version - nicht in der Lage, mit Makefiles umzugehen.
Dennoch habe ich eine Lösung gefunden:
Ich behalte die vorkompilierte Windows-Version des
betreffenden Programms bei und setze unter Linux beim GCC die
Option -malign-double , um kompatible Datenstrukturen im
Speicher zu erhalten.

Du solltest aber trotzdem versuchen das ganze so zu programmieren, dass die Datenstrukturen Compiler-Unabhängig bearbeitet werden. Spätestens wenn du das ganze auf Linux 68k compilierst, wirds dann nicht mehr funktionieren, da der 68K die Daten anders darstellt.

MfG Peter(TOO)

Du solltest aber trotzdem versuchen das ganze so zu
programmieren, dass die Datenstrukturen Compiler-Unabhängig
bearbeitet werden. Spätestens wenn du das ganze auf Linux 68k
compilierst, wirds dann nicht mehr funktionieren, da der 68K
die Daten anders darstellt.

Hallo Peter!

Aufgrund ähnlicher Erfahrungen hätte ich das vermutlich auch gemacht. Jedoch handelt es sich nicht um mein eigenes Programm, sondern um ein bestehendes Tool (RRD-Tool: http://ee-staff.ethz.ch/~oetiker/webtools/rrdtool/), welches ich in ein Programm integriert habe.

Aus Geschwindigkeitsgründen schreibt das RRD-Tool ein direktes Speicherabbild. Zur Portierung der Daten auf eine andere Architektur kann XML ex- und importiert werden. Für meine Anwendung ist dies jedoch keine Lösung, weil die Datenmenge so auf mehr als 1GB ansteigt :frowning: .

Da das fertige Produkt ohnehin nur auf der ix86-Architektur eingesetzt wird, ist die Compiler-Option hier völlig ausreichend - wenn auch keine universelle Lösung (aber die bezahlt mir auch niemand :wink: ).

CU
Markus