>source

그래서 나는 이것을 따르려고 노력하고 있습니다지도 시간, 코드를 복사하고 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)

Qt 버전 5.15.2와 함께 최신 Arch Linux를 사용하고 있습니다.

  • 답변 # 1

    따라 간 튜토리얼에 몇 가지 문제가 있습니다. 올바른 CMake 설정이있는 KF5 튜토리얼을 확인해야합니다.

    당신은 find_package 하지만 라이브러리를 실행 파일에 연결하는 것을 잊었습니다!

    CMake에서 라이브러리에 연결하면 컴파일 정의가 추가되고 디렉터리가 포함되며 물론 라이브러리에 연결됩니다.

    작동하도록 추가해야 할 사항은 다음과 같습니다.

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

    이렇게하면 모든 링크 된 라이브러리를 찾을 수 있도록 컴파일러 인수에 필요한 모든 항목이 추가됩니다.

  • 이전 c ++ - : 템플릿 트릭을 사용하여 둘 이상의 개인 멤버에 액세스
  • 다음 앵귤러 매트 칩에서 새 값과 중복 값을 추가하는 것을 어떻게 중지 할 수 있습니까?