wie mache ich "Windows Kompatible" EXE Datei mit C++ ?



  • Hallo zusammen, ich habe eine sehr üble Noob Frage:

    Ich fange gerade an C++ zu lernen und habe folgendes Problem:

    Ich kann Executables nur am PC (Windows 7) verwenden an dem ich sie Kompiliert habe. An einem anderen PC (Windows XP) lässt sie sich nicht abspielen.

    Aus Erfahrung weiss ich jedoch dass es EXE Dateien gibt welche fast auf jedem Windows Rechner laufen.

    Meine Frage: Was ist der "Trick", bzw was mache ich falsch?
    Ich habe schon Probiert .NET zu verwenden, was ja gewisse Charakteristiken von Java hat, was Kompatibilität angeht. Selbst einfache Konsolenanwendung bringe ich nicht total-Windows Kompatibel hin.

    Ich versuchte beides: MS Visual Studio 2008 Compiler und Gnu Compiler Collection (GCC)

    Schon zB ein "Hallo Welt"

    à la

    #include <iostream>
    #include <ostream>
    
    int main() 
    {
    std::cout << "Hallo Welt!" << std::endl;
    }
    

    Ist nicht 100 % Windows Kompatibel wenn ich es Kompiliere, egal mit welchem Compiler. Selbst als .NET



  • Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung 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.



  • Bei Visual Studio könnte das Problem sein, dass auf dem anderen Computer die VS-Runtime fehlt. Abhilfe: entweder dort die Runtime installieren oder die Runtime statisch linken. Such mal nach "MSVCRT statisch linken". Dort sollte (glaube ich) ein Blog von Jochen Kalmbach kommen.
    Beim GCC sollte es normalerweise kein Problem geben, außer, du hast für eine bestimmte Prozessorarchitektur kompiliert. Wie hast du denn kompiliert?



  • Hast du schonmal versucht für Release statt für Debug zu kompilieren?
    Die Debug Version läuft nähmlich nur auf deinem PC.
    P.S.:
    Das #include <ostream> in deinem Beispiel ist überflüssig.





  • Danke an alle für die schnelle Hilfe

    @ wxSkip

    wxSkip schrieb:

    Beim GCC sollte es normalerweise kein Problem geben, außer, du hast für eine bestimmte Prozessorarchitektur kompiliert. Wie hast du denn kompiliert?

    Das freut mich sehr, dass der GCC gütiger mit der Kompatibilität ist 🙂
    Ich habe bei Eclipse (das ist meine IDE) zuerst "Builde" und dann Run gedrückt.
    Es wäre wohl ratsam manuell z kompilieren, sehe ich das richtig?

    @ Pikkolini

    Pikkolini schrieb:

    Hast du schonmal versucht für Release statt für Debug zu kompilieren?
    Die Debug Version läuft nähmlich nur auf deinem PC.

    Nein, vielen Dank, das werde ich gleich mal ausprobieren. Bei Visual Studio habe ich nur Debugg gedrückt und bei Eclipse bin ich mir nicht sicher was ich mit "Run" auslöse. Ich werde das jetzt verfolgen oder manuell machen.

    EDIT:

    Es hat leider nicht geklappt. Ich habe nun manuell mit dem GCC c++ Compiler und mit g++ compiliert und mit Eclipse auf Release Compiliert. Der Windwos XP Computer meint dass "libgcc_s_dw-1.dll" nicht gefunden werden kann.

    Kann ich diese .dll denn in die Exedatei rein quetschen für eine bessere Kompatibilität?


Anmelden zum Antworten