CMake 成功后 make 失败 运行

make failed after successful CMake run

所以,我试图遵循这个 tutorial,我复制了代码和 CMakeLists.txt,我后来对其进行了编辑。现在当我 运行 cmake 一切都很好,但是当我 运行 make 它只是失败并出现此错误:

main.cpp:1:10: fatal error: QApplication: No such file or directory
1 | #include <QApplication>
  |          ^~~~~~~~~~~~~~

这是我的CMakeLists.txt

cmake_minimum_required(VERSION 3.0)

project(kparttut1)

set(QT_MIN_VERSION "5.11.0")
set(KF_MIN_VERSION "5.55.0")

find_package(ECM ${KF_MIN_VERSION} REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})

include(KDEInstallDirs)
include(KDECMakeSettings)
include(KDECompilerSettings NO_POLICY_SCOPE)
include(ECMInstallIcons)
include(FeatureSummary)

find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Core Gui Widgets)

find_package(KF5 ${KF_MIN_VERSION} REQUIRED COMPONENTS
    CoreAddons
    Crash
    DBusAddons
    DocTools
    I18n
    XmlGui
    TextEditor
    Parts
)

set(kparttut1_SRCS
main.cpp
mainwindow.cpp
)

add_executable(kparttut1 main.cpp)

########### install files ###############

#install(TARGETS kparttut1 ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})

#install(FILES kparttut1ui.rc 
#    DESTINATION  ${DATA_INSTALL_KXMLGUI5DIR}/kparttut)

#feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)

我正在使用最新的 Arch Linux 和 Qt 版本 5.15.2

你遵循的教程有一些问题,你应该检查 KF5 tutorial 有正确的 CMake 设置。

您做了 find_package 事情,但是您忘记了 link 库到您的可执行文件!

在 CMake 中,linking 到库会添加编译定义、包含目录,当然 linking 到库。

以下是要使其正常工作需要添加的内容:

target_link_libraries(kparttut1 PUBLIC
    Qt5::Widgets
    KF5::CoreAddons
    KF5::I18n
    KF5::WidgetsAddons
)

这会将所有必要的内容添加到编译器参数中,以便找到所有 linked 库。