2015-05-14 131 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编译器进行测试。