webentwicklung-frage-antwort-db.com.de

Verwenden von Cmake mit Qt Creator

Ich möchte Qt creator und Cmake zusammen verwenden (bitte fragen Sie mich nicht nach meiner Motivation, akzeptieren Sie dies als gegeben.)

Ich habe Qt Creator erfolgreich eingerichtet, um cmake "Cmake" zu verwenden: Siehe this , this und this dokumentiert, wie ich das gemacht habe.

Ich habe erfolgreich hello world project erstellt, aber ich kann keine Dateien in project erstellen. Füge nur vorhandene Dateien zum Projektbaum hinzu und füge sie der cmake-Liste hinzu. Standardoperation von Qt creator "Add New ... "funktioniert nicht und ich kann nicht finden warum.

Gibt es jemanden, der Qt Creator und "Cmake" zusammen verwendet? Ist die Kombination tatsächlich möglich? 

Hinweis: Ich verwende Qt Creator v2.4.1.

20
themean

Sie können Dateien mit einem Glob-Ausdruck in Ihrer CMakeLists.txt hinzufügen, wie folgt:

file(GLOB SRC . *.cpp)
add_executable (your_exe_name ${SRC})

Cmake wählt Ihre neuen cpp-Dateien das nächste Mal aus, und QtCreator zeigt sie im Projektbrowser an.

Update

Diese Lösung kann nützlich sein, aber wie in Kommentaren erwähnt, ist dies keine gute Praxis. Jedes Mal, wenn jemand eine neue Quelldatei hinzufügt und Änderungen übernimmt, müssen Sie cmake erneut ausführen, um alle Quellen zu erstellen. Normalerweise touch eine der CMakeLists.txt -Dateien, wenn mein Build fehlerhaft ist, nachdem ich die letzten Änderungen aus dem Repository gepoolt habe. Danach wird make automatisch cmake ausgeführt, und ich musste es nicht mit den Händen ausführen. Trotzdem denke ich, dass explizite Quellenlisten in CMakeLists.txt eine gute Sache sind, sie nannten das Ding CMake Lists aus einem Grund.

14
Lazin

Wenn Sie neue Dateien in QtCreator über das Dialogfeld "Neue Datei oder neues Projekt ..." hinzufügen, werden nur die Dateien auf der Festplatte erstellt. Die Dateien werden nicht automatisch der Datei CMakeLists.txt hinzugefügt. Sie müssen dies manuell tun, indem Sie die Datei CMakeLists.txt bearbeiten.

Wenn Sie das nächste Mal das Projekt erstellen, wird CMake erneut ausgeführt, und QtCreator nimmt die neuen Dateien auf und zeigt sie im Projektbrowser an.

10
alanxz

Ich löse dieses Problem, indem ich neue Dateien auf standardmäßige Weise (STRG + N) und dann benötigte Dateien in CMakeLists hinzufügte. Klicken Sie anschließend mit der rechten Maustaste auf Projekt in der Projektstrukturansicht und wählen Sie die Option Run CMake. Danach wurden die Dateien in der Projektlistenstruktur angezeigt. Nur bauen war nicht genug.

5
chao

Ich habe hier getestet und dasselbe Verhalten begangen, weil die von Ihnen gewünschten Optionen wirklich deaktiviert waren. 

Verwenden Sie File -> "New File or Project ..." oder STRG + N, um neue Dateien hinzuzufügen, und fügen Sie anschließend CMakeLists.txt hinzu 

2
para.cavalcante

Ich füge eine aktualisierte Antwort für neuere Versionen von QtCreator (4.x) hinzu. Wählen Sie im Menü Extras> Optionen ... den Abschnitt Build & Run und dann die Registerkarte CMake. Sie sehen die Einstellungen für Hinzufügen von Dateien und Sie können sie auf Dateipfade kopieren einstellen.

Wenn Sie eine neue Datei zu Ihrem Projekt hinzufügen möchten, klicken Sie in der Ansicht Projekt mit der rechten Maustaste auf den Namen der gewünschten CMake Executable/Library und wählen Sie Add New .... Gehen Sie durch das Dialogfeld Dialogfeld hinzufügen. Wenn Sie das Dialogfeld bestätigen, öffnet QtCreator CMakeLists.txt in der Ansicht Editor. Fügen Sie schließlich den Inhalt der Zwischenablage am Ende der entsprechenden Quelldateiliste ein und speichern Sie CMakeLists.txt. Das CMake-Projekt wird analysiert und Ihre neue Datei wird in der Ansicht Project angezeigt.

0
aTom