[英]How to configure CLion IDE for Qt Framework?
如何為 Qt 框架配置 CLion IDE? 這個 IDE 是否與 Qt 兼容,或者是否有其他與 Qt 兼容的 IDE?
我只是想嘗試使用 Qt Creator 以外的東西。
我和你一樣絕望,直到我讀到這個 Quora 討論。 它非常適合我!
總結一下,有兩個主要步驟:
首先,CLion 使用 CMake 來編譯您的代碼。 它基於 CMake 配置文件(例如“CMakeLists.txt”)。 您必須添加基於 Qt 的 CMake 命令(帶有“find_package”和“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
其次,CLion 必須使用 Qt 安裝的cmake
二進制文件。 為此,請轉到:“首選項”->“構建、執行、部署”->“CMake”並在“CMake 選項”中添加 Qt 使用的 CMake 路徑,該路徑應位於安裝 Qt 的目錄中。 例如,在 OSX 上:
-DCMAKE_PREFIX_PATH=/Users/edouard/Qt/5.7/clang_64/lib/cmake
您可以通過在main.cpp
執行一些測試腳本來測試一切是否正常:
#include <QApplication>
#include <QDebug>
using namespace std;
int main() {
qDebug() << QT_VERSION_STR;
return 1;
}
應該顯示如下內容:
/Users/edouard/Library/Caches/CLion2016.2/cmake/generated/myqtproject-89a4132/89a4132/Debug/untitled
5.7.0
Process finished with exit code 1
更新
我被添加 Qt5 模塊(例如 QSql)的問題所困擾。 您可以通過添加 CMakeLists.txt 來做到這一點:
find_package(Qt5Sql REQUIRED)
就在另一個find_package
,並在最后一行添加:
target_link_libraries(myqtproject Qt5::Widgets Qt5::Sql)
您可以使用所有其他 Qt5 模塊執行此操作。
更新
現在在 Jet Brain 網站上有一個官方教程:
https://www.jetbrains.com/help/clion/qt-tutorial.html
原答案
這種方法是用於最新Qt版本的最簡單方法之一。
Qt: 5.10.1
CLion: 2018.1.2
GDB: 8.1
項目設置
在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)
資源文件 (.qrc) 應該添加到 add_executable 列表中,以便 moc 能夠在資源和內部文件(如 qmls、texts...)上運行其過程。
qml 文件應包含在 qrc 文件中,並在運行時使用QQmlApplicationEngine加載
調試器:
為了在 Qt 類型的調試會話中具有人類可讀的視圖,必須在系統上安裝新的 GDB 並且必須有漂亮的打印機:
Qt5 的漂亮打印機:
1- Lekensteyn Qt5 漂亮的打印機(工作):
地址: https : //github.com/Lekensteyn/qt5printers
設置:~/.gdbinit
python
import sys, os.path
sys.path.insert(0, os.path.expanduser('~/.gdb'))
import qt5printers
qt5printers.register_printers(gdb.current_objfile())
end
2-官方(不工作!!!):
"PATH_TO_QT/QT_VERSION/QT_ARCH/Tools/QtCreator/share/qtcreator/debugger/"
設置:~/.gdbinit
如包含的自述文件所述(但不起作用!):
python sys.path.insert(1, '<path/to/qtcreator>/share/qtcreator/debugger/')
python from gdbbridge import *
外部工具
在“文件->設置->工具->外部工具”中,添加4個外部工具:
Qt 創建者:
Program: "PATH_TO_QT/QT_VERSION/QT_ARCH/Tools/QtCreator/bin/qtcreator"
Arguments: $FilePath$
界面設計師:
Program: "PATH_TO_QT/QT_VERSION/QT_ARCH/lib/bin/designer")
Arguments: $FilePath$
L更新:
Program: "PATH_TO_QT/QT_VERSION/QT_ARCH/lib/bin/lupdate")
Arguments: $FilePath$ -ts $FileNameWithoutExtension$.ts
語言學家:
Program: "PATH_TO_QT/QT_VERSION/QT_ARCH/lib/bin/linguist")
Arguments: $FilePath$
現在您可以右鍵單擊這些文件類型並在外部工具下:
自動美化器
如果在Qt Creator 中您使用了“Uncrustify”之類的美化器來自動美化保存源文件時的代碼,則:
正如 Tom Lank 所提到的,Qt 項目現在可以使用 CMake 進行管理和構建,這讓 CLion 感到高興。
Qt5 的 CMake 手冊描述了如何。 Qt 在幕后提供了很多魔法,在CMake 文檔中對其進行了更好的解釋。
Qt CMake 手冊或以上未提及的一件事是您還需要以下幾行:
set(CMAKE_AUTOUIC ON) # if you have any .ui files
set(CMAKE_AUTORCC ON) # if you have any .qrc files
所有這些對set()
調用都應該出現在find_package(Qt5Widgets REQUIRED)
行之前。 add_executable()
任何 .ui 或 .qrc 文件作為依賴項包含在對add_executable()
的調用中以及您的 .cpp 文件中。
這最初讓我在瀏覽網頁時感到非常困惑,但是您不需要對qt_*()
或qt5_*()
任何調用。 據我所知,這些已被取代。
要測試您的CMakeLists.txt
真正正常工作,您可以嘗試在 Qt Creator 中構建,方法是將CMakeLists.txt
作為項目加載並構建。
確認后,您可以將CMakeLists.txt
文件作為項目加載到 CLion 中。 最有可能的是,您需要在find_package
之前用這樣的一行告訴 CMake 在哪里可以找到您的 Qt 包:
set(CMAKE_PREFIX_PATH "C:/Qt/5.9/msvc2015_64")
最后,如果您在 Windows 上運行 / 構建,Qt 不再帶有 GCC/Mingw32 庫的預構建。 您需要使用 Visual Studio 進行構建。 幸運的是, CLion 現在實驗性地支持 Visual Studio ,我發現它適用於 Qt 項目; 只需確保將架構(在 Settings->Build, Execution, Development->CMake 下)設置為 x86_amd64,以便在 64 位模式下構建並與 Qt 的預構建庫兼容。
所有這些都使用 CLion 2017.1、Qt 5.9 和 Visual Studio 2015 編譯器進行了測試。
您可以在 CLion 中構建 QT 應用程序。 QT 提供處理所有細節的 CMake 模塊。
以下 CMake 腳本構建示例應用程序“ 動態布局示例”
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)
此鏈接有一個快速啟動項目,您只需將 CMakeLists 中的 CMAKE_PREFIX_PATH 更改為您要使用的 Qt 打包編譯器的位置(我的是 gcc_64,他的默認是 clang_64)——它有一些其他人提到的設置答案已經設定:
https://github.com/ArneGockeln/qtstarter
此外,(在基於 Ubuntu 的 Linux 上)我必須按照此處所述安裝 OpenGL 庫( https://askubuntu.com/questions/11378/how-do-i-set-up-an-opengl-programming-environment )。
當您使用 CMake 作為構建工具時,您可以使用 VC、Eclipse、CLion 等輕松開發 Qt。 CMake 將為每個 IDE 生成項目文件。 我以這種方式使用了幾個 IDE。 在這次旅程之后,我對 Qt Creator 的用戶更加滿意了。
你唯一需要的是添加 QT install ..Qt\\5.10.1\\mingw53_32\\bin;
到您的路徑。 之后不要忘記重啟電腦,因為 CLion 由於某種原因無法刷新路徑,只有完全重啟電腦才有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.