Allgemeine Verständnissfrage
-
Hallo zusammen,
hab mal eine allgemeine Verständnissfrage. Und zwar ist ja wxWidgets dazu gedacht, die GUI Entwicklung so zu vereinfachen, damit die entsprechende Anwendung auf den entsprechenden Betriebssystemen dementsprechend gewohnt/gewöhnlich aussieht.
Wenn ich nun eine Anwendung unter Windows XP erstellt habe und möchte diese auf einem anderen System (z.B. Linux) testen wie sie dort aussieht, wie muss ich dabei vorgehen? Muss ich dann wxWidget für das entsprechende Betriebssystem runterladen, es auf dem System installieren und dann dei Anwendung auf dem entsprechenden System compilieren?
Oder kann ich das schon fetige Programm einfach portieren und auf dem anderen System ausführen?
Oder muss man in VS 2005 entsprechende Einstellungen vornehmen, damit die Anwendung auf z.B. Linux lauffähig ist?Und welchen Tip würdet ihr mir geben um das entsprechende Aussehen zu testen? Sollte man vielleicht VMWare installieren mit den verschiedenen Betriebssystemen oder gibt es eine elegantere Art?
Vielen Dank schon mal für die Antworten!
Gruß
-
Also einfach die fertige EXE nehmen und unter Linux starten geht schon mal nicht. Du muß auf jeden Fall wx für Linux runter laden, dort wx bauen lassen (die Lib-Dateien) und dann dein Projekt (Anwendung) neu kompilieren lassen. Dann bekommst du am Ende eine lauffähige Linux-Anwendung.
Üblicherweise benutzt man aber dafür Build-Systeme, wie make. Oder modernere wie SCons, BoostBuild und ich glaube AutoTools ist auch sowas. Dann muß man nicht alles jedesmal von Hand machen. Eine Art Buildsystem hat ja VisualStudio ja auch schon drin (die Projektmappe), ist aber natürlich nur für VS. SCons usw. sind dagegen Platformübergreifend.
Wenn du keinen zweiten PC hast, würde ich unter Windows das kostenlose VirtualPC 2004 nehmen (VMWare kostet ja Geld, soweit mir bekannt). Habe ich auch das VPC 2004. Da lasse ich problemlos Linux und auch FreeBSD drauf laufen. Auch wenn VirtualPC offiziell nur Windows-Gäste erlaubt, da läuft auch problemlos jedes andere x86-OS drauf. Als Host-System soll man zwar WinXP Pro haben, aber auch hier: inoffiziell läuft VirtualPC 2004 auch auf WinXP Home (die Meldung einfach wegklicken).
Dann auf VirtualPC ein Linux installieren und versuchen alles einzurichten. Ohne Buildfiles wirst du das gleiche Prozedere wie unter Windows und VisualStudio machen müssen. Nur würde ich an deiner Stelle dieses Vorhaben erstmal zurück stellen. Hast ja gemerkt, das es selbst unter Windows nicht auf Anhieb funktioniert.
Achja, ohne Linux oder so könnte man das auch machen: Crosscompiler! Damit kann man z.B. unter Windows für andere fremde Plattformen kompilieren. Aber nicht testen.
-
Wenn ich dann ein Programm wie z.B. SCons benutzen möchte, wie geht dann dieser Make-Prozess vor sich?
Wenn ich zum Beispiel eine Anwendung in C++ geschrieben habe und der Quellcode liegt auf der Platte, wie kann ich nun mit diesem Programm eine Ausführbare Datei zum Beispiel für ein Linux System machen? Dazu benötige ich ja dann auch die wx-Dateien für Linux oder??
Vielen Dank für die Antworten!
Gruß
-
Dazu benötige ich ja dann auch die wx-Dateien für Linux oder??
Ja:
Artchi schrieb:
Du muß auf jeden Fall wx für Linux runter laden, dort wx bauen lassen (die Lib-Dateien) und dann dein Projekt (Anwendung) neu kompilieren lassen. Dann bekommst du am Ende eine lauffähige Linux-Anwendung.
Das man überhaupt eine Library für Linux benötigt, scheint dir immer noch nicht bewusst zu sein. Dabei ist das ein Grundverständnis für Multiplattform-Entwicklung. Wenn das alles so einfach wäre, wie du es dir vorstellst, würde es jedes Software-Produkt (z.B. Videospiel) auf jeder Platform geben. Ist aber nicht der Fall. Teilweise ist Software nicht mal auf alle Windows-Versionen lauffähig, wie soll das also über Windows-Grenzen hinweg funktionieren?
Wenn ich dann ein Programm wie z.B. SCons benutzen möchte, wie geht dann dieser Make-Prozess vor sich?
SCons ist ein Tool, welches make ersetzt! Man kann aber auch Make benutzen, wenn man damit umgehen kann. Du kannst natürlich unter Linux auch alles von Hand kompilieren, ohne ein Buildtool wie make oder SCons, aber das ist umständlich.
Wenn du wissen willst, wie man mit den Programmen umgeht, solltest du dich über diese informieren. Wir haben im Magazin eine Artikelserie über Build Systeme geschrieben:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-133193.html
Wobei nur SCons, Boost Build oder Autotools für dich in Frage kommen, da Ant nur für Java ist.Ich galube, dir ist nicht bewusst, was für ein Aufwand dahinter steckt, sich eine Multiplattform-Entwicklungs-Infrastruktur aufzubauen. Zumindest für einen Anfänger, der nicht mal unter einer Platform wxWidgets zum Laufen bekommt, ist es noch schwieriger. Du solltest kleine Schritte machen. Das nur als Hinweis.
-
Du hast Recht. Ich fange komplett neu mit dieser Thematik an!
Höchstwahrscheinlich habe ich eine falsche Vorstellung wie komplex dieses Thema ist, doch ich habe schon schnell feststellen müssen, dass ich meine Vorstellung ändern mussIch versuche gerade einen Überblick zu bekommen, wie ich am besten zu einen minimalen Ergebniss komme. Ich kann zur Zeit mit meinem VS 2005 entsprechende Anwendungen schreiben. (Sprache: C++)
Zuvor habe ich selbst noch nie Programme mit Makefiles erstellen müssen, weshalb ich da noch nicht richtig den Überblick habe, welche Datei nun für was ist.
Ich habe nun ein Programm mit VS 2005 compiliert. mit wxPack konnte meine Entwicklungsumgebung nun das Programm mit den entsprechenden Makefiles von wxwWidgets erstellen. (Sehe ich das richtig?)
Um nun das Programm z.B. auf Linux zu portieren, muss ich ja entsprechend die wxWidget - Makedatei für Linux benutzen um eine lauffähige Anwendung für Linux zu erstellen.
Nach deinem Hinweis, kann ich dieses Erstellen mit den Makefiles mit der Software SCons realisieren. Um eben Plattformübergreifend entwickeln zu können bietet mit wxWidget mit den Makefiles die Möglichkeit, das Programm für andere OS zu übersetzen, oder?Meine Frage ist eigentlich, ob ich nun einigermaßen richtig im Bilde bin. Wäre es eigentlich auch möglich, dass ich mit VS den ganzen Make-Prozess auch für Linux durchführen kann? Also statt SCons einfach VS benutzen?
-
Im Prinzip hast du es erstmal verstanden. Bei den Details ist noch das ein und andere falsch, aber das wird auch noch.
Du solltest make oder makefile nicht als synonym für Buildtools verwenden. make und makefile sind ganz bestimmte Produkte und Konfigfiles. Mußt du aufpassen, das du mit make nicht SCons meinst, denn das sind zwei paar Schuhe. Aber beides sind Buildtools. Wobei make das älteste ist, und makefile eine Konfigdatei für make.
Wäre es eigentlich auch möglich, dass ich mit VS den ganzen Make-Prozess auch für Linux durchführen kann? Also statt SCons einfach VS benutzen?
Nein. VS hat (da make ein altes und gängiges Tool ist) ein sogenanntes nmake (nmake.exe). Damit hast du wohl wxWidgest bauen lassen. VS selbst hat auch sein eigenes Buildsystem. Du kannst dir vorstellen, das VS nur für Windows Projekte bauen kann. Also kannst du mit VS nichts für Linux bauen, auch nicht wxWidgets für Linux. Deshalb: entweder make (gibts für Windows und Linux) oder ein anderes Buildtool, das es für beide Platformen gibt. SCons erfüllt diese Aufgabe.
Um eben Plattformübergreifend entwickeln zu können bietet mit wxWidget mit den Makefiles die Möglichkeit, das Programm für andere OS zu übersetzen, oder?
Ja. Wobei ich der Meinung bin, das für Linux und Windows zwei makefiles da sind. Ist aber nur ein Detail, vom Prinzip stimmt es aber.