2015-07-01 3 views
10

Я пытаюсь использовать Clion IDE для компиляции простой программы с использованием библиотеки Qt, но я не могу понять, как настроить файл CMakeLists.txt. (Я не знаком с CMake и набора инструментов) это мой текущий CMakeLists.txt файл:Использование Qt внутри Clion

cmake_minimum_required(VERSION 3.2) 
project(MyTest) 

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") 

set(SOURCE_FILES main.cpp) 
add_executable(MyTest ${SOURCE_FILES}) 

# Define sources and executable 
set(EXECUTABLE_NAME "MySFML") 
add_executable(${EXECUTABLE_NAME} main.cpp) 



# Detect and add SFML 
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH}) 
find_package(SFML 2 REQUIRED system window graphics network audio) 
if(SFML_FOUND) 
    include_directories(${SFML_INCLUDE_DIR}) 
    target_link_libraries(${EXECUTABLE_NAME} ${SFML_LIBRARIES}) 
endif() 

Он настроен на использование библиотеки SFML с файлом «FindSFML.cmake» и он работает отлично. (Я скопировал эти файлы из некоторого учебника). Теперь мне нужна помощь относительно правильной конфигурации CMakeLists.txt для компиляции программ, использующих библиотеку Qt (более полезно, если файлы и пояснения предоставлены).


P.S: мой текущий ОС manjaro 0.8.13 и все, что я мог бы найти объясняла конфигурации в среде Windows, так что я не смог реализовать эти учебники.

+0

@coincoin что вы имеете в виду, называя CMake .. ?? Я использую Clion для создания и запуска моей программы, а не команды CLI (если это то, что вы имеете в виду) – kahrabian

+0

@coincoin это мой код: [link] (http://paste.ubuntu.com/11803793/), и это выход клиона: [link] (http://paste.ubuntu.com/11803799/) – kahrabian

+2

Возможный дубликат [Как настроить CLII IDE для Qt Framework?] (http://stackoverflow.com/questions/30235175/how-to-configure -clion-ide-for-qt-framework) – BoshWash

ответ

8

В файле проекта CMake отсутствуют пакеты Qt. Вы должны добавить:

find_package(Qt5Core REQUIRED) 
find_package(Qt5Widgets REQUIRED) 
find_package(Qt5Gui REQUIRED) 

, а затем

qt5_use_modules(MyTest Core Widgets Gui) 
+0

благодарю вас за ответ, наконец, он отлично работает !! теперь мой «CmakeLists.txt» выглядит следующим образом: [link] (http://paste.ubuntu.com/11804067/) – kahrabian

+0

@thomas_b исправьте меня, если я ошибаюсь, но если cmake заменяет файлы .pro, как мне добавить ресурсы в мой проект? – Michael

+0

Как описано в руководстве CMake для Qt (http://doc.qt.io/qt-5/cmake-manual.html), это делается с помощью команды 'q5_add_resources'. Расширяя исходный код вопроса, вызов будет выглядеть так: 'qt5_add_resources (SOURCE_FILES my_resources.qrc)' – tomvodi

11

В дополнение к @ tomvodi отвечают, вы можете использовать более простой синтаксис:

find_package(Qt5 REQUIRED COMPONENTS Core Widgets Gui). Тогда вы не вызываете qt5_use_modules, но вместо того, чтобы использовать стандартную команду для ссылки:

target_link_libraries(MyTest Qt5::Core Qt5::Widgets Qt5::Gui)

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