PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C-Compilieren unter Linux für Windows DOS



Olli
29-10-2003, 20:21
Ich hab gerade mit dem Programmieren in C angefangen! :rolleyes:

Ich möchte ein einfachen Code den ich schon unter Linux compiliert hab auch unter einer Windos-Maschine auf der DOS-Ebene zum laufen bringen.

Das einzigste was ich weiß ist, dass ich das mit gcc machen muss.

Aber klappt natürlich nicht.

Muss ich im Quelltext irgendwie darauf hinweisen das ich das Programm unter Windows-DOS ausführen will?

Hab auch mal gehört das man beim Aufruf des Programms unter DOS vorweg ein Befehl verwenden muss...hab natürlich vergessen welcher Befehl.

Hoffe das ich hier weiter komme.

Berufspenner
29-10-2003, 20:38
Hi

Willkommen im Forum :)

Also, wenn du einen Quelltext hast, der keine Systemspezifischen Teile (Funktionen, Header, etc.) enthält, so kannst du diesen eigentlich ohne Änderungen unter Windows kompilieren. Wenn du diesen Quelltext unter Linux kompiliert hast, ihn aber unter Windows ausführen willlst gibt es zwei Möglichkeiten. Die eine wäre, wenn du diesen Quelltext ganz normal kompilierst, dann kannst du ihn unter Windows nicht ausführen. Die andere Müglichkeit wäre, das du einen Crosskompiler einsetzt.
Hab auch mal gehört das man beim Aufruf des Programms unter DOS vorweg ein Befehl verwenden muss...hab natürlich vergessen welcher Befehl. Da musst du irgendwas verwechselt haben.

Cu
André

Olli
29-10-2003, 21:03
Danke schon mal für die Hilfe.

Wo bekomme ich so ein Cross-Compiler her?
Und auf welcher Maschiene läuft der?

Berufspenner
29-10-2003, 21:06
Original geschrieben von Olli
Danke schon mal für die Hilfe.

Wo bekomme ich so ein Cross-Compiler her?
Und auf welcher Maschiene läuft der? Wenn du mir vieleicht verraten könntest, um was für Code es sich handelt (ob bestimmte Bibliotheken verwendet werden), kann ich dir vieleicht sagen, ob es nicht vieleicht noch einen anderen Weg gibt. Es gibt ja schließlich auch für Windows gute und kostenlose Compiler.

Cu
André

Olli
29-10-2003, 21:12
Es werden eigentlich keine bestimmten Bibliotheken verwendet.
Sind eigentlich nur Übungen wie diese:


#include <stdio.h>

int main(viod)
{
double satz, netto, betrag;

printf("Bitte geben sie den Nettobetrag ein!\n ");
scanf("%lf", &netto);

printf("Und jetzt den Mwst-Satz:\n");
scanf("%lf", &satz);

betrag = netto * (satz / 100.0);
printf("Die Mehrwertsteuer ist: %.2f EURO\n", betrag);

betrag = betrag + netto;
printf("Der Bruttobetrag ist: %.2f EURO\n", betrag);
return 0;
}

Berufspenner
29-10-2003, 21:18
Hi

Da lohnt sich der Einsatz eines CrossCompilers eigentlich nicht. Obwohl das sicherlich auch kein großer Aufwand wäre. Mit CrossCompilern habe ich bis jetzt noch nicht gearbeitet. Guck dir mal Dev-C++ an (http://www.bloodshed.net/dev/). Das ist eine komplette IDE für Windows, die eine Windowsversion der GCC benutzt.

Cu
André

Olli
29-10-2003, 21:21
THX...ich schau mir das morgen noch mal in Ruhe an..

Wenn ich nicht weiter komme melde ich mich bestimmt wieder :D

Berufspenner
29-10-2003, 21:22
Original geschrieben von Olli
Wenn ich nicht weiter komme melde ich mich bestimmt wieder :DMach das :)

Cu
André

RapidMax
29-10-2003, 22:20
Verwende Cygwin, dann kannst du daraus das Programm compilieren. Cygwin ist ein Port der wichtigsten GNU-Tools und Bibliotheken (incl. gcc) für Windows.

Gruss, Andy

oracle2025
30-10-2003, 06:24
Du kannst dir auch den neuen Borland CBuilderX für Linux runterladen, ich glaub da ist ein Crosscompiler dabei.

peschmae
30-10-2003, 07:14
Was meinst du mit Windows-DOS?

Eine Windows-Konsole? (Das ist nicht DOS)
Oder echt DOS?

MfG Peschmä

peschmae
30-10-2003, 12:01
Hab n bisschen Bookmarks nachgeschaut

http://www.geocrawler.com/mail/msg.php3?msg_id=6248110&list=404

CrossGCC mit Mingw32 als Target (http://mingw.sf.net) [Edit: Link war falsch]
Mingw32 ist aber für Windows (auch Konsolen-Apps) und nicht für Dos.

MfG Peschmä

Olli
30-10-2003, 16:48
peschmae schrieb:


Eine Windows-Konsole? (Das ist nicht DOS)
Oder echt DOS?


Ich meinte nur die Konsole :)

So, erst mal danke für die vielen Link's.
Wer die Wahl hat, hat die Qual *g*.

Werde am Wochenende mal den ein oder anderen Compiler ausprobieren.

peschmae
30-10-2003, 17:03
im MinGW-Faq steht auch was zu Cross-Compiler machen: http://mingw.sourceforge.net/mingwfaq.shtml#faq-cross

MfG Peschmä

Olli
30-10-2003, 18:40
Hab schon mal den Dev-C++ ausprobiert.

Erstmal muss man sich da zurechtfinden...und als es dann mal geklappt hat, läuft natürlich nicht so wie unter Linux.

Musste einigen sachen rausnehmen wie:

printf("\033[0;31m"); fflush(stdout);
(was den Bildschirm frei macht)
Das mochte der nicht..oder ich hab was falsch gemacht.

Naja...nach einer halben Stunde soll mal keine Wunder erwarten.

peschmae
31-10-2003, 08:11
nach meinen Erfahrungen kennt sich die Windows-Shell nicht so mit Escape-Sequenzen aus. Sogar die Cygwin-Bash hat da teilweise noch probleme... :D

MfG Peschmä

Olli
31-10-2003, 15:00
Hab heute von meinem Dozenten gehört das man dafür sorgen muss das die ansi.sys beim Systemstart geladen werden muss...dann soll es klappen.

Werde das mal am Wochenende ausprobieren...(mal sehen ob ich die ansi.sys überhaupt finde bzw. hab):rolleyes:

sven1978
03-11-2003, 19:10
printf("\033[0;31m"); fflush(stdout);

fflush hat unter Linux nicht den effekt wie unter windows.
Stdout ist ja ein stream für den Standart Output(meistens der Monitor)
mit fflush leerst du einfach den speicher dieses streams also das was im speichzer steht wird auf dem bildschirm ausgegeben. Bei linux funk. das aber anderst.

Aber wenn ich mir das prog so anschaue ist fflush hier aber ziemlich unötig?

Olli
03-11-2003, 20:12
Naja...is ja auch nur zum üben.
Und selbst wenn ich nur printf("\033[0;31m"); (was unter Linux auch geht)
verwende um es farblich darzustellen, klappt das nicht unter Windows.

Aber momentan komm ich eh nicht dazu das für Windows zu kompilieren.

Windows muss warten...*g*

Giuly
13-11-2003, 03:23
Original geschrieben von Olli
Naja...is ja auch nur zum üben.
Und selbst wenn ich nur printf("\033[0;31m"); (was unter Linux auch geht)
verwende um es farblich darzustellen, klappt das nicht unter Windows.

Aber momentan komm ich eh nicht dazu das für Windows zu kompilieren.

Windows muss warten...*g*

Die DOS-Shell oder wie das Ding da heißt kennt auch kein "^["-Zeichen (Nein, das sind nicht zwei Zeichen). Sowas sollte _theoretisch_ in der windows.h oder einem anderem Windows-Header sein. Man guck dazu die MSDN an (Link->Google) und es werde Farbe:ugly: