unter Windows für Linux kompilieren?
-
Schönen Dank für die prompten Antworten
Linux kostet nichts und man kanns direkt im Windows installieren.
Läuft das gut?
Und welcher Compiler wäre dann zu empfehlen?Mein Wunsch ist natürlich, den Arbeitsaufwand so minimal wie möglich zu halten - und tatsächlich nichts weiter zu machen als den C+ü Code auf ein Linux-lauffähiges Programm zu potieren.
-
Percy2000 schrieb:
Läuft das gut?
Jup.
Und welcher Compiler wäre dann zu empfehlen?
_Der_ Standard-C++-Compiler schlechthin ist unter Unix der g++ aus der GCC.
-
So, jetzt habe ich mühsam CoLinux installiert - und fühle mich in Dos-Tage zurückversetzt. - Was kann man für eine grafische Linux Umgebung draufsetzen? Vor allem, was macht am wenigsten Arbeit?
-
einloggen, mit cd ins quellverzeichnis wechseln und g++ auf deinen quelltext aufrufen.
gui installieren bringts nicht
-
Was willst du eigentlich kompilieren? Wie es aussieht, hast du keine Ahnung von Linux, daher kann ich mir schwer vorstellen, dass da etwas vernünftiges rauskommt. Linux ist kein "Open Source Windows", sondern in einigen Bereichen ganz anders strukturiert. Vielleicht solltest du dich erst einmal damit ausseinander setzen, bevor du Software für Linux erstellst...
-
ich wuerde mir an deiner stelle cygwin holen. das kommt mit gcc und daher bist du schon mal auf dem richtigen weg fuer deine linuxkompatibilitaet. das ganze wuerde ich in eclipse mit den C++ development tools einbinden. eclipse ist eigentlich fuer java, funktioniert aber auch fuer c++ ganz gut, wie ich finde. alle sachen sind frei erhaeltlich. wenn du dann dein prog fertig hast, dann lad dir vmware runter. das kommt dann in der freien version mit ubuntu linux. so kannst du windows laufen lassen und deine sachen unter linux testen ohne einen 2. rechner zu haben oder aber deinen immer neu zu starten.
soweit so gut, leider gibt es aber immer wieder probleme, so mache ich im moment leider boese erfahrungen bei posix threads, die unter linux klasse laufen, bei cygwin aber probleme machen. anstelle von cygin koenntest du aber auch noch mingw benutzen. geschmackssache eben...gruesse
-
ich benutze dazu colinux. in colinux ein vollständiges gentoo linux, aber da kannste auch nehmen, was du willst. als ide nehme ich code::blocks, denn das erlaubt mir, statt die IDE das maken machen zu lassen, ein eigenes makefile zu nehmen und dabei doch die IDE in vollem umfang zu nutzen. für die projekteinstellung "linux" rufe ich dann kein normales makefile auf, sondern
rmake.bat
@rar u -r -as -m5 -inul .outRemote/vlib.rar *.cpp *.hpp makefile @pscp -q -l root -pw geheim .outRemote/vlib.rar 192.168.99.1:./vlib/ @plink -l root -pw geheim 192.168.99.1 -m rmake.rmt
nebst rmake.rmt
cd vlib ./.outMakefile/vlib
dadurch kann frei zwischen windows und linux wechseln und kann auch kritische teile, wo ich mit #ifdef __linux__ oder so für ein spezielles system was baue, fein austesten. als compiler nehme ich gcc und msvc unter win und gcc und icc unter linux.
-
mtlox schrieb:
ich wuerde mir an deiner stelle cygwin holen. das kommt mit gcc und daher bist du schon mal auf dem richtigen weg fuer deine linuxkompatibilitaet.
Wenn man keine Ahnung von Linux hat, ist es nicht sehr ratsam für Linux zu programmieren. Da sollte man schon eine richtige Installation nehmen, um sich mit dem System vertraut zu machen.
mtlox schrieb:
das ganze wuerde ich in eclipse mit den C++ development tools einbinden. eclipse ist eigentlich fuer java, funktioniert aber auch fuer c++ ganz gut, wie ich finde. alle sachen sind frei erhaeltlich.
Warum nicht einfach die IDE benutzten, mit der man am besten zurecht kommt?
mtlox schrieb:
wenn du dann dein prog fertig hast, dann lad dir vmware runter. das kommt dann in der freien version mit ubuntu linux. so kannst du windows laufen lassen und deine sachen unter linux testen ohne einen 2. rechner zu haben oder aber deinen immer neu zu starten.
Wenn du schon ne komplette installation von Linux machst, kannst du sie auch gleich auf einem richtigen PC machen. Dann dauert das compilieren auch nicht so lange. Wenn du z.B. versuchen würdest QT in einem PC Emulator zu compilieren, wäre das tötlich.
mtlox schrieb:
anstelle von cygin koenntest du aber auch noch mingw benutzen.
Nein. MinGW ist der GCC für Windows. Da sind die Windows Header und alles mögliche dabei. Damit stellst du keine Linuxcompatibilität her.
-
Auch schön ist: VMWare installieren und ein Ubuntu o.ä. in die virtuelle Maschine.
Der VMWare Player kostet nix, virtuelle Laufwerke kannst du dir auf www.easyvmx.com erstellen lassen.
Danach haste ein GUI Linux und kannst dort ganz normal arbeiten.
-
ProgChild schrieb:
Wenn man keine Ahnung von Linux hat, ist es nicht sehr ratsam für Linux zu programmieren. Da sollte man schon eine richtige Installation nehmen, um sich mit dem System vertraut zu machen.
da hast du sicher recht, aber meistens hat man ein problem mit dem man sich beschaeftigen muss und dann ist alles drumherum auf das problem bezogen. normalerweise haben nicht so viele leute zeit sich einfach mal mit linux zu beschaeftigen. er wollte ja auch nur einen rat in eine bestimmte richtung. er wird sicherlich selber schnell merken an welchen stellen es bei ihm hapert und dann muss er sich informieren. ich finde solche zitate einfach immer ein wenig ueberheblich (nicht boese gemeint). den leuten zu raten sich weiter zu informieren ist doch in einem forum eh ein wenig komisch, oder? wozu ist denn das forum da? da kann man eher auf eine konkrete stelle hinweisen oder es ganz sein lassen.
ProgChild schrieb:
Warum nicht einfach die IDE benutzten, mit der man am besten zurecht kommt?
richtig! ich komme so am betsne klar und so hab ich das geschrieben. hier wurde nach den workarounds anderer gefragt und das habe ich beantwortet. ich gebe ja keinen weg vor!
ProgChild schrieb:
Wenn du schon ne komplette installation von Linux machst, kannst du sie auch gleich auf einem richtigen PC machen. Dann dauert das compilieren auch nicht so lange. Wenn du z.B. versuchen würdest QT in einem PC Emulator zu compilieren, wäre das tötlich.
also bei mir geht das ganz gut. ok, ich kompiliere nicht qt aber es funktioniert. ausserdem muss man nicht an den partitionen rumwerkeln und platz machen und sich mit bootloadern beschaeftigen, etc. gerade fuer einen einstieg finde ich es nicht so schlecht eine vm zu benutzen, weil man sich damit im schlimmsten fall einfach das hd file loescht und alles neu macht, oder das hd file vorher kopiert und immer eine sicherung vom system hat. aber auch das ist geschmackssache
ProgChild schrieb:
Nein. MinGW ist der GCC für Windows. Da sind die Windows Header und alles mögliche dabei. Damit stellst du keine Linuxcompatibilität her.
windows header sind auch bei cygwin! nur das sie von denen mehr oder weniger selber geschrieben sind. unterschiede sind meines erachtens in diesen speziellen headern zu denen von microsoft nicht so wirklich. steht auch schon so in der doku von cygwin. letzten endes kommt es darauf an, was man programmiert und included, oder?
-
mtlox schrieb:
da hast du sicher recht, aber meistens hat man ein problem mit dem man sich beschaeftigen muss und dann ist alles drumherum auf das problem bezogen. normalerweise haben nicht so viele leute zeit sich einfach mal mit linux zu beschaeftigen. er wollte ja auch nur einen rat in eine bestimmte richtung.
Ich rate ihm, dass er unter Linux mal programmieren sollte. Am besten geht das mit einer richtigen Installation.
mtlox schrieb:
windows header sind auch bei cygwin! nur das sie von denen mehr oder weniger selber geschrieben sind. unterschiede sind meines erachtens in diesen speziellen headern zu denen von microsoft nicht so wirklich. steht auch schon so in der doku von cygwin. letzten endes kommt es darauf an, was man programmiert und included, oder?
Ja richtig... Aber beim Cygwin sind z.B. die POSIX Threads, um dein Beispiel mal aufzugreifen, dabei. Bei MinGW nicht. Beim MinGW (wo die WinAPI Header auch selber geschrieben sind) fehlt die POSIX compatibilität. Und solche Header wie linux/cdrom.h oder ähnliches findet sich weder in Cygwin, und erst recht nicht in MinGW. Den Header brauchst du aber, wenn du das CD Laufwerk steuern willst.
-
mtlox schrieb:
normalerweise haben nicht so viele leute zeit sich einfach mal mit linux zu beschaeftigen
eine faule Ausrede. Wer Software für Linux entwickeln will, sollte sich die Zeit nehmen, um sich mit Linux zu beschäftigen, sonst kommt nur Müll raus, Müll, den man unter Linux nicht braucht, und der Entwickler geht weg und sagt "Linux ist scheiße, weil meine Programme nicht laufen" und dann sind beide Seiten unglückglich.
Wer Linux Software schreiben will, aber keine Ahnung von Linux hat, dann sollte
1. entweder die Finger davon lassen
2. oder sich mit Linux auseinander setzenEin "ich habe keine Zei/Lustt, um mich damit zu bechäftigen, möchte aber Linux Programme" erzeugt nur Müll