2015-05-14 133 views
27

如何爲Qt Framework配置CLion IDE? 這個IDE是否與Qt兼容,還是有其他兼容Qt的IDE?如何爲Qt框架配置CLion IDE?

我只想嘗試使用比Qt Creator更多的東西。

+3

我不認爲這個問題值得這種討價還價。雖然可以通過谷歌搜索找到答案,但需要相當多的點擊。找到這個讓我更快得到答案。 – JcKelley

+0

@Claudio問題不在於哪個IDE最好,而是CLion如何與Qt合作。您的回覆無助於回答此問題,也無助於那些希望使用Qt開發而無需使用Qt Creator的用戶。 – Razakhel

回答

15

CLion尚未(尚)compatible

Visual Studio有一個Qt插件available

Eclipse did有一個Qt插件,但工作是stopped on it some time ago


這個問題已經得到了很多的關注最近(如克利翁的人氣上升毫無疑問),所以我應該有資格說克利翁確實支持的Qt在這個意義上,因爲它使用的CMake它可以處理調用mocrccuic相當無痛。然而,它並不瞭解QML,最重要的是,它並不瞭解QMake項目文件 - 這顯然使得使用CLion中的現有Qt項目變得困難,因爲您必須先將它移植到CMake。

+0

並且CLion在調試時不瞭解QObject,所以例如你看不到QString裏面有什麼。 –

+0

@PatrizioBekerle當然,這是一個缺少GDB漂亮的打印機問題,而不是CLion或Qt問題? – cmannett85

+0

好點,這可能是如此。 QtCreator(Qt的IDE)似乎做了一些不同的事情來查看它們的對象。所以我通常使用QtCreator來進行圖形用戶界面和調試,並且使用CLion來處理其他一切。 –

0

當您使用CMake作爲構建工具時,您可以使用VC,Eclipse,CLion等輕鬆開發Qt。 CMake將爲每個IDE生成項目文件。我以這種方式使用了幾個IDE。旅程結束後,我成爲了Qt Creator的更幸福的用戶。

20

我和你一樣絕望,直到我讀到this Quora discussion。 它對我來說非常合適!

總之,有2個主要步驟:

首先,克利翁使用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 

其次,克利翁必須使用cmake二進制被Qt安裝。爲此,請訪問: 'Preferences' - >'Build,Execution,Deployment' - >'CMake'和'CMake options'附加了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 

UPDATE

我遇到了添加Qt5模塊的問題(例如QSql)。你可以通過在CMakeLists中添加。TXT:

find_package(Qt5Sql REQUIRED) 

只是其他find_package後,並添加在最後一行:

target_link_libraries(myqtproject Qt5::Widgets Qt5::Sql) 

可以與所有其他QT5模塊做到這一點。

2

您可以在CLion中構建QT應用程序。 QT提供了處理所有細節的CMake模塊。

以下CMake的腳本構建的示例應用程序 '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) 

更多信息regarding building Qt applications with CMake

2

正如Tom Lank所言,Qt項目現在可以通過CMake進行管理,並且構建在CMake之下,這讓CLion感到開心。

Qt5's CMake manual描述如何。 Qt在這裏提供了很多魔術,並且在CMake documentation中解釋得更好。未在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()以及.cpp文件時,還要包含任何.ui或.qrc文件作爲依賴關係。

這對我來說是瀏覽網頁時最初非常令人困惑的事情,但您不需要撥打qt_*()qt5_*()。據我所知,這些已被取代。

爲了測試你的CMakeLists.txt實際上工作正常,你可以嘗試在Qt Creator中建立,通過加載CMakeLists.txt作爲一個項目和建築。

一旦確認,您可以加載CMakeLists.txt文件作爲CLion中的項目。 最有可能的,你需要告訴CMake的在哪裏找到這樣一行你的Qt包你find_package的面前:

set(CMAKE_PREFIX_PATH "C:/Qt/5.9/msvc2015_64") 

最後,如果你的Windows上運行/建築,Qt的無更長的時間是用GCC/Mingw32庫預先構建的。您需要使用Visual Studio構建。幸運的是,CLion now supports Visual Studio experimentally,我發現它適用於Qt項目;只需確保將體系結構(在Settings-> Build,Execution,Development-> CMake)下設置爲x86_amd64,即可構建64位模式並與Qt的預編譯庫兼容。

所有這些都通過CLion 2017.1,Qt 5.9和Visual Studio 2015編譯器進行測試。