2009-08-19 11 views
6

Wenn ich Qt-Anwendungen unter Ubuntu erstelle, werden die Ausgabedateien im Gegensatz zu Freigabe/Debug-Ordnern in den Hauptlösungsordner verschoben.Qt erstellt keine Ausgabedateien in Debug/Release-Ordnern unter Linux

Dies ist problematisch, da manchmal die Ausgabedateien als Teil des Erstellungsprozesses ausgeführt werden müssen (z. B. zum Ausführen von Komponententests).

Ich habe eine Idee, dies hat etwas mit den qmake.conf-Dateien zu tun, aber ich bin mir nicht sicher, was ich dagegen tun soll.

Also meine Fragen sind:

  1. Warum dieser Unterschied gibt (es könnte mir nur sein?)
  2. Wie soll ich mich über meine Anwendungen und sicherstellen, dass sowohl unter Windows und Ubuntu bauen?

Antwort

6

Ich nehme an, Sie verwenden qmake, um das eigentliche Gebäude zu tun. Sie können die Projektdateien bearbeiten, um die Ausgabe in verschiedenen Verzeichnissen wie folgt zu setzen:

# only for unix: 
unix { 
    # in debug mode... 
    CONFIG(debug, debug|release) { 
     DESTDIR = debug 
    } 
    else { 
     DESTDIR = release 
    } 
} 

Offensichtlich, um diese Sie beide Debug zu bauen müssen arbeiten und ausführbare Dateien freigeben. Weitere Informationen zu diesem Thema finden Sie here

Prost

+0

Dies funktionierte für OSX auch mit "Mac" als Bedingung. Mit OSX wird der Ordner YourProgram.app direkt unter dem Verzeichnis "debug" oder "release" platziert und die eigentliche ausführbare Datei wird in YourProgram.app/Contents/MacOS ein paar Stufen tiefer platziert. –

6

Die CONFIG Variable hat debug_and_release und debug_and_release_target Satz an Fenstern, aber nicht auf Linux zu finden. So wird die folgende Zeile stellen Sie sicher, dass Ihr Build wird das gleiche auf Linux und Windows sein:

CONFIG *= debug_and_release debug_and_release_target 

Die documentation kurz erwähnt sie. Die Datei /usr/share/qt4/mkspecs/win32-g++/qmake.conf fügt sie zu CONFIG hinzu.

+0

Das wird morgen getestet. Ich hoffe, dass dies redundante Debug/Release-Ordner un Windows loswerden –