QT Programm mit fortlaufenden Versionnummern wie realisieren?



  • Hallo,

    bin QT Neuling und frage mich, wie bei der Programmentwicklung möglichst einfach fortlaufende Versionsnummern realisiert werden können?

    Bislang speicherte ich meine C++ Programme dazu einfach in Verzeichnissen mit fortlaufenden Versionsnummern. Also beispielsweise:

    D:\MyProgram v0.0.1
    D:\MyProgram v0.0.2
    D:\MyProgram v0.0.3
    usw.

    Mit QT Creator funktioniert das aber anscheinend nicht. Kopiere ich ein mit QT Creator erstelltes Programm in einen anderen Ordner, werden Compiler Fehler angezeigt, dass "main.cpp" und "mainwindow.cpp" nicht gefunden werden.

    Wie realisiert man fortlaufende Programm Versionsnummern mit QT richtig?



  • Das hat eigentlich gar nichts mit dem Qt Creator zu tun. Normalerweise verwendet man eine Versionsvewaltung wie Git oder Subversion, dann stellen sich so komische Fragen auch nicht.
    An sich spricht aber auch nichts dagegen, ein Verzeichnis zu kopieren. Das sollte noch nicht zu Compilerfehlern führen. Du hast bestimmt was falsch gemacht, schau dir nochmal an, was du genau kopiert hast, und wo der Compiler etwas sucht und nicht findet.



  • Ich habe das Ursprunsgverzeichnis als Ganzes kopiert und umbenannt:

    1. Mit QT Creator ein Projekt beispielsweise in "D:\MyProg" erstellt, welches einwandfrei compiliert wird.
    2. Von dem Verzeichnis "D:\MyProg" habe ich dann eine Kopie erstellt und diese Verzeichniskopie in "D:\MyProg v0.0.1" umbenannt.
    3. Nachdem die QT Projektdatei *.pro aus dem Verzeichnis "D:\MyProg v0.0.1" in QT Creator geöffnet wurde, erhalte ich beim ausführen die Compiler Fehler: "main.cpp" und "mainwindow.cpp" können nicht geöffnet werden, no such file or directory.

    Dabei sind "main.cpp" und "mainwindow.cpp" in dem Verzeichnis vorhanden.



  • Ich benutze den Qt Creator nicht, vielleicht schreibt er irgendwo absolute Pfade rein? Nochmal qmake laufen lassen? Muss irgendwas ziemlich banales sein.



  • Nein, dass qmake manchmal manuell ausgeführt werden muss, habe ich selbst schon herausgefunden (keine schöne Sache), aber das ist es leider nicht.

    Programmierst Du Qt unter Windows mit Visual Studio 2013 und dem Visual Studio Addin v1.2.3?

    Habe letzteres eben einmal ausprobiert. Dort wird das Programm im neuen Verzeichnis einwandfrei compiliert und ausgeführt - seltsam.



  • Ich benutze Visual Studio ohne das Qt Plugin, lass qmake von Hand laufen, wenn ich das brauche.



  • Ehrlich gesagt, habe ich mich bislang an Versionsverwaltungen wie Git oder Subversion noch nicht herangetraut, weil sie auf den ersten Blick sehr kompliziert aussehen.

    Da ich immer allein an einem einzelnen Programm programmiere, frage ich mich, ob ich mit solchen Versionsverwaltungen für meine Zwecke nicht mit Elephanten auf Mücken schießen und alles viel komplizierter als einfacher machen würde.

    Bei MFC Programmen ging ich bislang einfach wie folgt vor:

    1. Neue Programmversion in neues fortlaufend nummeriertes Verzeichnis kopieren
    2. In der Resource Stringdatei die Titelzeile des Programms auf die neue Versionsnummer ändern.
    2. Alte Programmversion in seinem nummerierten Verzeichnis zur Sicherung auf CD archivieren. Zuvor bis auf den Sourcecode und die Projektdatei alle Objektdateien etc. löschen.
    Bingo!

    Das war Idioten sicher und funktionierte Jahre lang ganz gut.

    Allerdings frage ich mich schon lange, ob es nicht noch einen besseren Wege geben könnte, ohne es wesentlich komplizierter zu machen.



  • 1. Wirklich kompliziert sind Versionsverwaltungen nicht, in einer Stunde hast die Grundlagen sicher verstanden.
    2. Das hat schon Vorteile, auch wenn man alleine an einem Projekt arbeitet. Weil einfach jede Änderung verwaltet ist. Jedes Feature oder jede Änderung check ich separat ein. Dann hab ich eine Historie und weiß für jede Zeile, warum ich sie geschrieben habe und wie sie vorher ausgeschaut hat. Sagen wir mal, ich stolpere in meinem Code über einen Block, der mir nicht mehr klar ist, dann kann ich ein Blame machen und sehe, was ich beim Einchecken dazugeschrieben habe und was zu der Änderung sonst alles gehört.
    3. Ist natürlich auch sehr nützlich, sich damit auszukennen. Wenn du das irgendwann beruflich machst oder aus irgendeinem anderen Grund in einem Team arbeiten musst und keine Ahnung von Versionsverwaltung hast, ist es schlecht.



  • Bin schon ein alter Knacker und kein Programmierer. Daher kann ich mir keine Situation verstellen, in der ich in einem Programmiererteam arbeiten werde.

    Werde mir das aber trotzdem mal durch den Kopf gehen lassen, ob Git oder Subversion etwas für mich sein könnte.

    Danke Mechanics für die Hilfe!



  • Habe die Lösung für QT Creator v3.2.1 jetzt gefunden. Falls ein Build eines QT Projekts in einem anderen Verzeichnis erstellt werden soll, als sein ursprüngliches Verzeichnis, muss unter "Projekte / Build-Einstellungen" die Checkbox "Shadow-Build" abgewählt werden. Dann funktioniert auch der Build eines Projekts in einem neuen Verzeichnis.

    Keine Ahnung warum das so ist, bin wie gesagt Qt Neuling.


Log in to reply