Archiv verlassen und diese Seite im Standarddesign anzeigen : C-Compilieren unter Linux für Windows DOS
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, 21: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é
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, 22: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é
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, 22: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é
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, 22:22
Original geschrieben von Olli
Wenn ich nicht weiter komme melde ich mich bestimmt wieder :DMach das :)
Cu
André
RapidMax
29-10-2003, 23: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, 07:24
Du kannst dir auch den neuen Borland CBuilderX für Linux runterladen, ich glaub da ist ein Crosscompiler dabei.
peschmae
30-10-2003, 08:14
Was meinst du mit Windows-DOS?
Eine Windows-Konsole? (Das ist nicht DOS)
Oder echt DOS?
MfG Peschmä
peschmae
30-10-2003, 13: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ä
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, 18:03
im MinGW-Faq steht auch was zu Cross-Compiler machen: http://mingw.sourceforge.net/mingwfaq.shtml#faq-cross
MfG Peschmä
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, 09: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ä
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, 20: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?
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*
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:
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.