Задать вопрос
@dalbio

Как подключить qt к проекту с помощью cmake?

У меня вроде в самом cmake файле все подключено, но при подключении QImage почему-то выдаёт ошибку про неразрешённый внешний символ. Возможно я где-то ошибся, подскажите что не так
cmake_minimum_required(VERSION 3.19)
project(FictionalSystem)
set(username $ENV{USERNAME})

set(CMAKE_CXX_STANDARD 17)


set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_PREFIX_PATH "C:\\Qt\\6.1.3\\mingw81_64\\lib\\cmake")
set(EXECUTABLE_OUTPUT_PATH "..\\..\\..\\release")

set(CMAKE_CXX_STANDARD 17)

set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)

find_package(Qt6Widgets REQUIRED)
find_package(Qt6 COMPONENTS Gui REQUIRED)



include_directories(${Qt6Widgets_INCLUDES})


if (MSVC)
        message("yes")
endif()






#add_library (
#    PICS 
#    "src/pics/set/pics.h"
#    "src/pics/set/lbp.h"
#)

#add_library (
#    NET
    #"src/net/templates/algen.h"
    #"src/net/countmask.h"
    #"src/net/structure/prefim.h"
    #"src/net/templates/create_w.h"
#)
add_library(
    LEARNING
    "src/learning/adaboost.h"
    "src/learning/countmask.h"
   # "src/learning/create_w.h"
)
add_library(
    STRUCT
    "src/struct/algen.h"
    "src/struct/prefim.h"
    "src/struct/shab.h"
    "src/struct/sigmoid.h"
)





add_library(
    SRC
    "src/learning.h"
    "src/net.h"
    "src/pics_get.h"
    "src/pics_set.h"
)
add_executable(fict main.cpp ${SRC})

add_library(mytarget)

target_link_libraries(mytarget PRIVATE Qt6::Gui)


target_link_libraries(fict Qt6::Widgets)


Структура: (не используется net каталог)6234cb309c5c4829564610.jpeg
  • Вопрос задан
  • 460 просмотров
Подписаться 1 Простой 4 комментария
Решения вопроса 1
vt4a2h
@vt4a2h
Senior software engineer (C++/Qt/boost)
Если вы используете класс QImage, то в официальной документации написано, какие строки надо добавить в CMakeLists.txt (https://doc.qt.io/qt-6/qimage.html):
find_package(Qt6 COMPONENTS Gui REQUIRED)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы