Dann müsstest du es ja für Linux Compilieren können.
GCC ist meines wissens nach ein Cross-Compiler. Du solltest damit also aus Vista heraus das Linux-Programm compilieren können.
keine ahnung wie ich das jetzt machen soll ... ich benutze devc++
hab sowas noch nie gebraucht, deswegen weis ich das jetzt nicht :)
Ja, ich bin im Umgang mit C auch noch nicht sehr versiert.
Also:
"GCC ist der Name der Compiler-Suite des GNU-Projekts. GCC steht ursprünglich für GNU C Compiler"
"Dev-C++ ist eine freie Entwicklungsumgebung von Bloodshed Software für C und C++. Sie läuft unter Windows und nutzt MinGW als Compiler, die Windows-Variante des GNU-C++-Compilers."
Aha.
"Die letzten Arbeiten an Dev-C++ wurden im März 2005 veröffentlicht. An dem Status der letzten zugänglichen Beta-Version hat sich seitdem nichts verändert, man geht deshalb davon aus, dass die Arbeiten an diesem Projekt eingestellt wurden."
Hm.
"Ein Cross-Compiler bezeichnet einen Compiler, der auf einer bestimmten Hostplattform (zum Beispiel i386 Linux) läuft und Objektdateien oder ein ausführbares Programm für eine andere Zielplattform (zum Beispiel amd64 Windows) erzeugt."
Da ich C und den Compiler (ich benutze GCC) möglichst gut verstehen will, benutze ich keine Entwicklungsumgebung sondern einen guten Texteditor und kompiliere direkt über die Kommandozeile. Ich habe also auch keine Idee, wie und ob das Cross-Compilen mit Dev-C++ bzw. MinGW möglich ist. Aber man kann den C-Quellcode nicht einfach so für eine andere Plattform Compilieren, wenn man vorher nich möglichst plattformunabhängigen Quellcode geschrieben hat.
Ein Beispiel: Die Hauptfunktion main gibt einen Integerwert zurück. Wird 0 zurückgegeben, so wurde das Programm ordnungsgemäß beendet. Die 0 muss aber nicht auf jeder Plattform diese Bedeutung haben.
int main(void){
return 0;
}
Das ist also schon nicht mehr Plattformunabhängig.
Das schon eher:
#include <stdlib.h>
int main(void){
return EXIT_SUCCESS;
}
In der Headerdatei <stdlib.h> wird für die Konstante EXIT_SUCCESS der richtige Rückgabewert für die entsprechende Plattform gesetzt.
"Ein Rückgabewert von 0 bedeutet, dass ein Programm ordentlich beendet wurde – ein Wert ungleich 0 hingegen sagt aus, dass etwas nicht ordnungsgemäß abgeschlossen wurde. Da dies, wie schon in Abschnitt 11.7 erwähnt, nicht unbedingt so implementiert sein muss, ist man auch hier mit den Standard-C Makros EXIT_SUCCESS (für eine erfolgreiche Beendigung) und EXIT_FAILURE (bei einem Fehler) auf der sicheren Seite als Parameter für exit()."
( Aus dem sehr guten, kostenlosen und sehr zu empfehlenden Open Book "C von A bis Z" von Jürgen Wolf. )