Frage

Ich habe ein Qt-Projekt, das eine DLL / Shared-Bibliothek und anderes Qt-Projekt, das die Bibliothek testet baut.

Gibt es eine gute Möglichkeit, qmake die DLL mit dem Ausgang-Ordner des Test-Projekt kopieren haben?

War es hilfreich?

Lösung

Fügen Sie diese auf Ihre Pro-Datei:

target.path = ../testProject/$$TARGET
INSTALLS += target 

Andere Tipps

# Copy the dynamic library.
win32 {
   QMAKE_PRE_LINK=copy /Y lib\qextserialport\src\build\qextserialportd.dll debug\ & copy /Y lib\qextserialport\src\build\qextserialport.dll release\
}
else {
   # TODO: Unices
}

Das funktioniert, für die QextSerialPort Bibliothek. Unterstützt von Qt debug_and_release-Modus.

QMAKE_POST_LINK funktioniert auch, aber ein Fehler aus, wenn Sie versuchen, die App sofort ausgeführt werden: dann wird Ihre DLL zu spät kopiert werden. QMAKE_PRE_LINK ist es in der Zeit kopiert werden.

Ich verwende INSTALLS, wie so. (qmake Dokumentation)

Dies kann nicht eine ‚gute‘ Art und Weise sein, aber es kann den Trick tun.

QMAKE_POST_LINK += some shell command to copy the dll

Sie können DESTDIR Schlüsselwort verwenden, wie es gesagt wird, in Qmake Dateien -Dokumentation über in Qt 4.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top