【问题标题】:make failed after successful CMake run成功运行 CMake 后 make 失败
【发布时间】:2021-03-16 15:58:33
【问题描述】:

所以,我正在尝试关注这个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

【问题讨论】:

    标签: c++ qt cmake archlinux kde


    【解决方案1】:

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

    您做了find_package 的事情,但您忘记将库链接到您的可执行文件!

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

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

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

    这会将所有必要的东西添加到编译器参数中,以便找到所有链接的库。

    【讨论】:

    • 我知道我需要了解有关 CMake 的更多信息。谢谢,成功了。
    • @Velitar 哦,我忘了在那里添加PUBLIC。不是必需的,但建议这样做。
    猜你喜欢
    • 1970-01-01
    • 2020-03-28
    • 2011-06-20
    • 1970-01-01
    • 2018-03-30
    • 2018-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多