我正在尝试使用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()
它被配置为使用带有“FindSFML.cmake”文件的SFML库,它工作正常。 (我已经从一些教程中复制了这些文件)现在我想要一些关于正确CMakeLists.txt
配置的帮助来编译使用Qt库的程序(如果提供了文件和解释,它会更有用)。
P.S:我目前的操作系统是manjaro 0.8.13,我所能找到的只是在Windows环境中解释配置,所以我无法实现这些教程。
答案 0 :(得分:12)
除了@ tomvodi的回答,您还可以使用更简单的语法:
find_package(Qt5 REQUIRED COMPONENTS Core Widgets Gui)
。
然后,您不要调用qt5_use_modules
,而是使用标准命令链接:
target_link_libraries(MyTest Qt5::Core Qt5::Widgets Qt5::Gui)
答案 1 :(得分:9)
您的CMake
项目文件缺少Qt包。你必须添加:
find_package( Qt5Core REQUIRED )
find_package( Qt5Widgets REQUIRED )
find_package( Qt5Gui REQUIRED )
然后
qt5_use_modules( MyTest Core Widgets Gui )