2015-05-14 3 views
27

Как настроить CLION IDE для Qt Framework? Является ли эта IDE совместимой с Qt, или есть другие IDE, совместимые с Qt?Как настроить CLII IDE для Qt Framework?

Я просто хочу попробовать что-то другое, чем Qt Creator.

+3

Я не думаю, что этот вопрос заслуживает такого рода downvotes. Хотя ответ можно найти через поиск в Google, для этого требуется довольно много щелчков. Обнаружив это, позвольте мне получить ответ намного быстрее. – JcKelley

+0

@Claudio Вопрос не в том, какая IDE лучшая, но как CLION может работать с Qt. Ваш ответ не помогает ответить на эту тему, ни те, кто хочет развиваться с Qt, не используя Qt Creator. – Razakhel

ответ

15

CLIIN (не) compatible.

Visual Studio имеет плагин Qt available.

Eclipse у есть плагин Qt, но работа была stopped on it some time ago.


Этот вопрос был получить много внимания в последнее время (без сомнения, как популярность CLion повышается), так что я должен оговориться, что CLion делает поддержку Qt в том смысле, что, как он использует CMake он может обрабатывать Призывая moc, rcc, и uic довольно безболезненно. Однако он не понимает QML, и, самое главное, он не понимает файлы проекта QMake, что явно затрудняет использование существующих проектов Qt в CLion, поскольку вы должны сначала перенести его на CMake.

+0

И CLION не понимает QObjects при отладке, поэтому, например, вы не можете видеть, что находится внутри QString. –

+0

@PatrizioBekerle Несомненно, это недостающая проблема с принтером GDB, а не проблема CLion или Qt? – cmannett85

+0

хорошая точка, что вполне может быть так. QtCreator (IDE Qt), кажется, делает что-то другое, чтобы просматривать их объекты. Поэтому я обычно использую QtCreator для работы с GUI и отладки и CLion для всего остального. –

0

Вы можете легко разработать Qt с VC, Eclipse, CLion и т. Д., Когда вы используете CMake в качестве инструмента сборки. CMake будет генерировать файлы проекта для каждой IDE. Таким образом, я использовал несколько IDE. После этого путешествия я еще более счастливый пользователь Qt Creator.

20

Я был так же в отчаянии, как и вы, пока не прочитал this Quora discussion. Он отлично работал для меня!

Итак, есть 2 основных этапа:

Во-первых, 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 должен использовать cmake двоичная установлен Qt. Для этого перейдите к: «Предпочтения» -> «Создание, выполнение, развертывание» -> «CMake» и в «Параметры CMake» добавьте путь CMake, который использует Qt, который должен находиться в каталоге, где установлен 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.ТХТ:

find_package(Qt5Sql REQUIRED) 

только после того, как другой find_package, и добавив в последней строке:

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

Вы можете сделать это со всеми другими модулями Qt5.

2

Вы можете создавать приложения QT в CLion. 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

Как говорит Том Ланк, проекты Qt теперь могут управляться и создаваться под 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). Также включите любые файлы .ui или .qrc в качестве зависимостей в вызове add_executable() вместе с вашими .cpp-файлами.

Это было изначально очень запутанно для меня при просмотре в Интернете, но вам не нужно звонить в 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") 

Наконец, если вы работаете на/здания для окон, Qt нет дольше поставляется предварительно с библиотеками GCC/Mingw32. Вам нужно построить визуальную студию. К счастью, CLion now supports Visual Studio experimentally, и я нашел, что он работает для проектов Qt; просто установите архитектуру (в разделе «Настройки-> Сборка, выполнение, разработка-> CMake) на x86_amd64, чтобы построить в 64-битном режиме и быть совместимым с личными сборниками Qt.

Все это протестировано с использованием CLION 2017.1, Qt 5.9 и компилятора Visual Studio 2015.

1

Эта ссылка имеет проект с быстрой загрузкой, вам просто нужно изменить свой CMAKE_PREFIX_PATH в CMakeLists на расположение компилируемого 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).

Смежные вопросы