So konfigurieren Sie CLion IDE für Qt Framework? Ist IDE mit Qt kompatibel oder gibt es andere mit Qt kompatible IDEs?
Ich möchte nur etwas anderes als Qt Creator verwenden.
Ich war so verzweifelt wie du, bis ich diese Quora-Diskussion ... gelesen habe - es hat perfekt für mich funktioniert!
Zusammenfassend gibt es zwei Hauptschritte:
Erstens verwendet CLion CMake, um Ihren Code zu kompilieren. Es basiert auf CMake-Konfigurationsdateien (z. B. "CMakeLists.txt"). Sie müssen Qt-basierte CMake-Befehle hinzufügen (die Zeilen mit 'find_package' und 'target_link_libraries'):
cmake_minimum_required(VERSION 3.5)
project(myqtproject)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES main.cpp)
find_package(Qt5Widgets REQUIRED) <-- this line
add_executable(myqtproject ${SOURCE_FILES})
target_link_libraries(myqtproject Qt5::Widgets) <-- this line
Zweitens muss CLion die von Qt installierte cmake
-Binärdatei verwenden. Gehen Sie dazu zu: 'Preferences' -> 'Build, Execution, Deployment' -> 'CMake' und hängen Sie in 'CMake-Optionen' den von Qt verwendeten CMake-Pfad an, der sich in dem Verzeichnis befindet, in dem Qt installiert ist . Zum Beispiel unter OSX:
-DCMAKE_PREFIX_PATH=/Users/edouard/Qt/5.7/clang_64/lib/cmake
Sie können testen, ob alles gut funktioniert, indem Sie ein kleines Testskript in main.cpp
ausführen:
#include <QApplication>
#include <QDebug>
using namespace std;
int main() {
qDebug() << QT_VERSION_STR;
return 1;
}
Was sollte etwas anzeigen wie:
/Users/edouard/Library/Caches/CLion2016.2/cmake/generated/myqtproject-89a4132/89a4132/Debug/untitled
5.7.0
Process finished with exit code 1
UPDATE
Ich hatte ein Problem mit dem Hinzufügen von Qt5-Modulen (zum Beispiel QSql). Sie können dies tun, indem Sie die CMakeLists.txt hinzufügen:
find_package(Qt5Sql REQUIRED)
direkt nach dem anderen find_package
und in der letzten Zeile:
target_link_libraries(myqtproject Qt5::Widgets Qt5::Sql)
Dies ist bei allen anderen Qt5-Modulen möglich.
Dieser Ansatz ist eine der einfachsten Methoden für die neueste Version von Qt.
Qt: 5.10.1
CLion: 2018.1.2
GDB: 8.1
Projektaufbau
In CLion:
CMakeLists.txt:
cmake_minimum_required(VERSION 3.10)
project(PROJECT_NAME)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_PREFIX_PATH "PATH_TO_QT/QT_VERSION/QT_Arch/lib/cmake")
find_package(Qt5Core REQUIRED)
find_package(Qt5Widgets REQUIRED)
find_package(Qt5Quick REQUIRED)
add_executable(PROJECT_NAME main.cpp MainWindow.cpp MainWindow.h qml.qrc)
target_link_libraries(PROJECT_NAME Qt5::Core)
target_link_libraries(PROJECT_NAME Qt5::Widgets)
target_link_libraries(PROJECT_NAME Qt5::Quick)
Die Ressourcendateien (.qrc) sollten der Liste add_executable in der Reihenfolge Hinzugefügt werden, damit moc seine Prozedur auf der Ressource ausführen kann und die interne Datei wie qmls, Texte usw. auf diese zugreifen kann.
qml-Dateien sollten in einer qrc-Datei enthalten sein und zur Laufzeit mit QQmlApplicationEngine geladen werden
Debuger:
Um in Debug-Sitzungen von Qt-Typen eine lesbare Ansicht zu erhalten, muss auf dem System eine neue GDB installiert sein und hübsche Drucker verfügbar sein:
Hübsche Drucker für Qt5:
1- LekensteynQt5 Pretty Printers (Arbeiten):
Adresse: https://github.com/Lekensteyn/qt5printers
Setup: ~/.gdbinit
python
import sys, os.path
sys.path.insert(0, os.path.expanduser('~/.gdb'))
import qt5printers
qt5printers.register_printers(gdb.current_objfile())
end
2- Offizielle (funktioniert nicht !!!):
"PATH_TO_QT/QT_VERSION/QT_Arch/Tools/QtCreator/share/qtcreator/debugger/"
Setup: ~/.gdbinit
Wie in der mitgelieferten Readme-Datei angegeben (funktioniert aber nicht!):
python sys.path.insert(1, '<path/to/qtcreator>/share/qtcreator/debugger/')
python from gdbbridge import *
Externe Werkzeuge
Fügen Sie unter "Datei -> Einstellungen -> Tools -> Externe Tools" 4 externe Tools hinzu:
Qt Creator:
Program: "PATH_TO_QT/QT_VERSION/QT_Arch/Tools/QtCreator/bin/qtcreator"
Arguments: $FilePath$
UI-Designer:
Program: "PATH_TO_QT/QT_VERSION/QT_Arch/lib/bin/designer")
Arguments: $FilePath$
LUpdate:
Program: "PATH_TO_QT/QT_VERSION/QT_Arch/lib/bin/lupdate")
Arguments: $FilePath$ -ts $FileNameWithoutExtension$.ts
Linguist:
Program: "PATH_TO_QT/QT_VERSION/QT_Arch/lib/bin/linguist")
Arguments: $FilePath$
Jetzt können Sie mit der rechten Maustaste auf diese Dateitypen und unter dem externen Tool klicken:
Automatische Verschönerung
Wenn Sie in Qt Creator einen Beautifier wie "Uncrustify" verwendet haben, um den Code beim Speichern einer Quelldatei automatisch zu verschönern, dann:
Sie können QT-Anwendungen in CLion erstellen. QT Stellt CMake-Module bereit, die sich um alle Details kümmern.
Das folgende CMake-Skript erstellt die Beispielanwendung ' Dynamic Layouts Example '
cmake_minimum_required(VERSION 3.7)
project(qtlayoutexample)
set(CMAKE_CXX_STANDARD 14)
# Find QT packages
find_package(Qt5Widgets)
# Add the include directories for the Qt 5 Widgets module to
# the compile lines.
include_directories(${Qt5Widgets_INCLUDE_DIRS})
# Find includes in corresponding build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# Instruct CMake to run moc automatically when needed.
set(CMAKE_AUTOMOC ON)
# Add compiler flags for building executables (-fPIE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")
qt5_generate_moc(main.cpp main.moc)
# Tell CMake to create the qtlayoutexample executable
add_executable(qtlayoutexample main.cpp dialog.cpp main.moc)
#Link the qtlayoutexample executable to the Qt 5 widgets library.
target_link_libraries(qtlayoutexample Qt5::Widgets)
Weitere Informationen zum Erstellen von Qt-Anwendungen mit CMake .
Dieser Link hat ein Quickstart-Projekt. Sie müssen lediglich CMAKE_PREFIX_PATH in CMakeLists in den Speicherort des Qt-Compilers ändern, den Sie verwenden möchten (mein ist gcc_64, sein Standardwert ist clang_64) bereits gesetzte Antworten:
https://github.com/ArneGockeln/qtstarter
Außerdem (unter Ubuntu-basierten Linux) musste ich die OpenGL-Bibliotheken wie hier beschrieben installieren ( https://askubuntu.com/questions/11378/how-do-i-set-up-an-opengl-programming -Umgebung ).
Wie Tom Lank erwähnt, können Qt-Projekte jetzt mit CMake verwaltet und erstellt werden, was CLion glücklich macht.
Das CMake-Handbuch von Qt5 beschreibt, wie. Qt bietet hier viel Magie unter der Haube und wird in der CMake-Dokumentation viel besser erklärt.
Was im Qt CMake-Handbuch oder oben nicht erwähnt wird, ist, dass Sie auch die Zeilen benötigen:
set(CMAKE_AUTOUIC ON) # if you have any .ui files
set(CMAKE_AUTORCC ON) # if you have any .qrc files
Alle diese Aufrufe an set()
sollten wahrscheinlich vor der Zeile find_package(Qt5Widgets REQUIRED)
stehen. Fügen Sie alle .ui- oder .qrc-Dateien zusammen mit Ihren .cpp-Dateien als Abhängigkeiten in den Aufruf von add_executable()
ein.
Das war anfangs sehr verwirrend für mich durch das Surfen im Internet, aber Sie sollten keine Aufrufe von qt_*()
oder qt5_*()
benötigen. Diese wurden, soweit ich das beurteilen kann, abgelöst.
Um zu testen, ob Ihr CMakeLists.txt
tatsächlich ordnungsgemäß funktioniert, können Sie das Erstellen von Qt Creator versuchen, indem Sie CMakeLists.txt
als Projekt und Gebäude laden.
Nach der Bestätigung können Sie die CMakeLists.txt
-Datei als Projekt in CLion ..__ laden. Am wahrscheinlichsten müssen Sie CMake mitteilen, wo Sie Ihre Qt-Pakete mit einer Zeile wie dieser finden müssen, bevor find_package
set(CMAKE_PREFIX_PATH "C:/Qt/5.9/msvc2015_64")
Wenn Sie Windows für Windows ausführen, wird Qt nicht mehr mit GCC/Mingw32-Bibliotheken vorinstalliert. Sie müssen mit Visual Studio bauen. Glücklicherweise unterstützt CLion jetzt Visual Studio experimentell und ich habe festgestellt, dass es für Qt-Projekte funktioniert. Stellen Sie nur sicher, dass die Architektur (unter Einstellungen-> Erstellen, Ausführen, Entwickeln-> CMake) auf x86_AMD64 gesetzt ist, um im 64-Bit-Modus zu bauen und mit den vorgefertigten Bibliotheken von Qt kompatibel zu sein.
All dies wird mit CLion 2017.1, Qt 5.9 und dem Visual Studio 2015-Compiler getestet.
Das einzige, was Sie brauchen, ist, QT install ..Qt\5.10.1\mingw53_32\bin;
zu Ihrem PATH hinzuzufügen. Vergessen Sie nicht, den PC anschließend neu zu starten, da CLion den Pfad aus irgendeinem Grund nicht aktualisieren kann. Nur der Neustart des PCs hilft.
Sie können Qt problemlos mit VC, Eclipse, CLion usw. entwickeln, wenn Sie CMake als Build-Tool verwenden. CMake generiert die Projektdateien für jede IDE. Ich habe auf diese Weise mehrere IDEs verwendet. Nach dieser Reise bin ich noch zufriedener mit Qt Creator.