在 Clion 中使用 Qt

Using Qt inside Clion

我正在尝试使用 Clion IDE 来编译一个使用 Qt 库的简单程序,但我不知道如何配置 CMakeLists.txt 文件。 (我不熟悉 cmake 和工具链) 这是我当前的 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: 我当前的 OS 是 manjaro 0.8.13,我能找到的只是在 windows 环境中解释配置,所以我无法实施这些教程。

您的 CMake 项目文件缺少 Qt 包。您必须添加:

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

然后是

qt5_use_modules( MyTest Core Widgets Gui )

除了@tomvodi 的回答,您还可以使用更简单的语法:

find_package(Qt5 REQUIRED COMPONENTS Core Widgets Gui)。 然后,您不调用 qt5_use_modules 而是使用标准命令 link :

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