且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

用CMake检测Qt5

更新时间:2022-05-01 04:25:11

我按照usr1234567的建议添加了正确的 CMAKE_PREFIX_PATH
(安装程序不应该这样做吗?)

之后添加了包含目录 https://www.kdab.com/using-cmake-with-qt-5/
(不应将其包含在手册 http://doc.qt.io/qt-5/cmake-manual.html ,以及KDevelop生成的CMakeLists.txt吗?),进一步重新生成GUI元素
的源文件(将#include目录从QtGui更改为QtWidgets之后,是否应该由KDevelop制作?)
我将CMakeLists.txt转换为所示内容。也许不是最优的,但是可行。
(这是我对Qt的首次尝试,我想提到的困难会使那些喜欢即用型解决方案的人望而却步)

I added the correct "CMAKE_PREFIX_PATH" as advised by usr1234567 (should it not be made by the installer?) added the include directories following https://www.kdab.com/using-cmake-with-qt-5/ (should it not be included in the manual http://doc.qt.io/qt-5/cmake-manual.html, and the KDevelop-generated CMakeLists.txt ?), furthermore the source file generating the GUI elements (after changing the #include directories from QtGui to QtWidgets, should it not be made by KDevelop?) I transformed the CMakeLists.txt to what shown. Maybe not optimal, but works. (it is my very first attempt with Qt, and I guess the mentioned difficulties can discourage people who prefer out-of-box solutions)

cmake_minimum_required(VERSION 2.8.11)

project(MyFirst)

# Find includes in corresponding build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# Instruct CMake to run moc automatically when needed.
set(CMAKE_AUTOMOC ON)

# Find the QtWidgets library
find_package(Qt5Widgets)

# Tell CMake to create the helloworld executable
add_executable(MyFirst main.cpp MyFirst.cpp)

# The Qt5Widgets_INCLUDES also includes the include directories for
  # dependencies QtCore and QtGui
  include_directories(${Qt5Widgets_INCLUDES})

  # We need add -DQT_WIDGETS_LIB when using QtWidgets in Qt 5.
  add_definitions(${Qt5Widgets_DEFINITIONS})

  # Executables fail to build with Qt 5 in the default configuration
  # without -fPIE. We add that here.
  set(CMAKE_CXX_FLAGS "${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")

# Use the Widgets module from Qt 5.
target_link_libraries(MyFirst Qt5::Widgets)