Compilen für Windows unter Ubuntu



  • Hallo,
    weiß jemand wie ich meinen plattformunabhänigen Code für Windows compilen kann? Ich will in CodeBlocks einfach ein weiteres Target "Win32" erstellen, doch was muss ich einstellen, eintragen?
    Geht sowas auch für Mac?


  • Mod

    Dafür brauchst du einen sogenannten Cross-Compiler, der normale GCC kann das soweit ich weiß nicht von Haus aus. Du musst quasi den Windows Compiler für Linux compilieren und den dann nehmen. Mit dem genannten Stichwort wirst du bei Google fündig.

    Das gibt's sicherlich auch für Mac.



  • Hast du wine installiert? Da sollte eigentlich "wineg++" mitkommen, der produziert Windows-Binaries 🙂


  • Mod

    sonya pauli schrieb:

    Hast du wine installiert? Da sollte eigentlich "wineg++" mitkommen, der produziert Windows-Binaries 🙂

    Hey cool! Kannte ich noch gar nicht. Und ich Mühe mich bisher immer mit mingw ab 😡 .



  • Aha ich hab mir jetzt mal wine inklusive wineg++ installiert.
    Aber wie steuer ich den jetzt an? Was für Parameter brauch ich? Kann ich irgendwie herausfinden welche Parameter CodeBlocks einsetzt um mit g++ zu compilen? Muss ich auch noch etwas installieren zum linken des Programms?

    Kenn mich mit solchen Dingen gar nicht aus, bisher hat das immer meine IDE gemacht 🙄



  • Settings->Compiler and Debugger...
    ->Other Settings->Compiler Logging->Full Command Line

    Dann gibt dir C::B das aus, womit es G++ aufruft.



  • Hallo

    Ich kenn auch nur die Methode sich den MinGW unter Linux zu installieren (zB: per atp unter Debian/Ubuntu zu finden) und dann als Parameter die Zielplattform anzugeben, funktioniert auch ohne Probleme. Benutze ich immer wenn die Libs nur mit sh-Scripte vertrieben werden.

    Mfg marco



  • und der parameter wäre? 😉



  • Tschuldigung vergessen 🙂

    Der Parameter müsste "--target=i386-mingw32" sein.

    Aber so nebenbei wenn du Codeblocks verwendest, dann gibt es hier vllt noch einen für dich interresannten Artikel: http://forums.codeblocks.org/index.php?topic=3343.0

    Mfg Marco



  • Cool, danke für den Link 🙂
    Nur noch eine Kleinigkeit: Wenn ich normalerweise mein Programm als Release compile hat es ca. 200kB, aber mit dem MinGW32 hat es plötzlich 800kB, obwohl ich alle Optimierungen an habe... Brauche ich für MinGW vielleicht andere Parameter zur Optimierung?



  • Hallo

    Gute Frage, aber das weiß ich leider auch nicht so genau. Die bessere frage wäre aber eher, wie groß wird es wenn du es unter Windows direkt übersetzt. Weil ich glaub die Optimieroptionen sind die selben.

    Mfg Marco



  • [MOP] schrieb:

    Cool, danke für den Link 🙂
    Nur noch eine Kleinigkeit: Wenn ich normalerweise mein Programm als Release compile hat es ca. 200kB, aber mit dem MinGW32 hat es plötzlich 800kB, obwohl ich alle Optimierungen an habe... Brauche ich für MinGW vielleicht andere Parameter zur Optimierung?

    Das ist genau einer der Gründe, warum für Windows meist der Visual C++-Compiler empfohlen wird. Wenn man mit einem neuen MinGW ein Programm, das lediglich <iostream> einbindet, übersetzt, ist es schon mindestens 470KB groß. Ich vermute mal, bei großen Projekten relativiert sich das dann auch, aber so schleppst du halt immer deutlich mehr mit rum.
    Helfen tut da nur noch UPX 🙂 .



  • Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ in das Forum Compiler- und IDE-Forum verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • wxSkip schrieb:

    [MOP] schrieb:

    Cool, danke für den Link 🙂
    Nur noch eine Kleinigkeit: Wenn ich normalerweise mein Programm als Release compile hat es ca. 200kB, aber mit dem MinGW32 hat es plötzlich 800kB, obwohl ich alle Optimierungen an habe... Brauche ich für MinGW vielleicht andere Parameter zur Optimierung?

    Das ist genau einer der Gründe, warum für Windows meist der Visual C++-Compiler empfohlen wird. Wenn man mit einem neuen MinGW ein Programm, das lediglich <iostream> einbindet, übersetzt, ist es schon mindestens 470KB groß. Ich vermute mal, bei großen Projekten relativiert sich das dann auch, aber so schleppst du halt immer deutlich mehr mit rum.
    Helfen tut da nur noch UPX 🙂 .

    Aja gut zu wissen, des dachte ich mir fast schon. Die Frage ist nur, ob das in der heutigen Zeit wirklich so schlimm ist. Ich arbeite eigentlich nur noch mit CodeBlocks und MinGW unter Windows. Des Einzige was mich irgendwie immer wieder stört ist, dass ich bei übersetzten Programmen die mingw-DLL mitgeben muss.

    Dieses UPX werde ich mir aber mal anschauen, erst recht da es scheint das alle Libs gleich mit eingebunden werden und das beim Verteilen doch recht angenehm ist ;-). Man lernt halt nie aus

    Mfg marco



  • Du kannst AFAIK mit UPX keine DLLs in deine EXE mit einpacken.
    Ich habe dazu mal ein Programm geschrieben, das mithilfe des GCC aus einer EXE-Datei und bspw. einer DLL (es geht auch mit anderen Dateien) ein Programm macht, das dann die beiden Dateien in das TMP-Verzeichnis extrahiert und die EXE dann ausführt. Es funktioniert allerdings nur für Windows, außerdem meldet AntiVir die erstellten Programme immer als Virus 😃



  • wxSkip schrieb:

    Du kannst AFAIK mit UPX keine DLLs in deine EXE mit einpacken.
    Ich habe dazu mal ein Programm geschrieben, das mithilfe des GCC aus einer EXE-Datei und bspw. einer DLL (es geht auch mit anderen Dateien) ein Programm macht, das dann die beiden Dateien in das TMP-Verzeichnis extrahiert und die EXE dann ausführt. Es funktioniert allerdings nur für Windows, außerdem meldet AntiVir die erstellten Programme immer als Virus 😃

    Achso, dann hab ich mich wohl doch auf der Wiki-Seite verlesen. Weil dort steht dies:

    Ein weiterer Vorteil von UPX besteht darin, komplette Verzeichnisse (z. B. Programm und zusätzliche Daten, Libraries, Ressourcen) in einer Datei zu bündeln, was z. B. automatische Updates oder die Verteilung in Firmennetzen übersichtlicher, sicherer und einfacher machen kann.

    Deswegen dachte ich kann man die komplett zusammenpacken.

    Mfg marco



  • Das hört sich auch ganz so an, als ob es doch ginge, ich hab bloß keine Option dafür gefunden. Werd's mir mal anschauen.

    mfg

    EDIT: Ah, ich hab den Satz jetzt auch bei Wikipedia gefunden 😉



  • wxSkip schrieb:

    ... EDIT: Ah, ich hab den Satz jetzt auch bei Wikipedia gefunden 😉

    Wenns mal wieder länger dauert 😉



  • 😃
    Hast du inzwischen herausgefunden, wie das geht? Würde mich auch mal interessieren.



  • Nein leider noch nicht, werds heute Abend wenn ich wieder daheim bin nochmal probieren.


Log in to reply