Подтвердить что ты не робот

Использование Qt внутри Clion

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

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, поэтому я не смог реализовать эти учебники.

4b9b3361

Ответ 1

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

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

а затем

qt5_use_modules( MyTest Core Widgets Gui )

Ответ 2

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

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

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