Интеграция vcpkg с создателем qt ⇐ C++
-
Гость
Интеграция vcpkg с создателем qt
Недавно я пытался загрузить эти пакеты C++, загруженные с помощью vcpkg, в проект создателя qt. Я настроил проект с файлом qmake .pro. Я искал в Интернете, что для связывания внешних библиотек мне нужно добавить две переменные в файл .pro INCLUDEPATH и LIBS. Мой текущий файл .pro выглядит так:
'''
QT += основной графический интерфейс moreThan(QT_MAJOR_VERSION, 4): виджеты QT += КОНФИГ += С++11 # Вы можете сделать так, чтобы ваш код не компилировался, если он использует устаревшие API. # Для этого раскомментируйте следующую строку. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # отключает все API, устаревшие до Qt 6.0.0 ВКЛЮЧИТЬПУТЬ += C:\vcpkg\vcpkg\installed\x64-windows\include LIBS += -LC:/vcpkg/vcpkg/installed/x64-windows/lib \ -lopencv_calib3d4 \ -lopencv_core4 \ -lopencv_features2d4 \ -lopencv_flann4 \ -lopencv_highgui4 \ -lopencv_imgproc4 \ -lopencv_ml4 \ -lopencv_objdetect4 \ -lopencv_video4 ИСТОЧНИКИ += \ основной.cpp \ mainwindow.cpp ЗАГОЛОВКИ += \ mainwindow.h ФОРМЫ += \ mainwindow.ui # Правила по умолчанию для развертывания. qnx: target.path = /tmp/$${TARGET}/bin еще: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): УСТАНАВЛИВАЕТ += цель Когда я нажимаю «Запустить qmake», программа не выдает никаких ошибок, поэтому я предполагаю, что создатель QT каким-то образом видит эти библиотеки. Но когда я запускаю main.cpp
#include "mainwindow.h" #include #include #include #include #include "opencv2/opencv.hpp" int main(int argc, char *argv[]) { QApplication a(argc, argv); Главное окно w; ш.шоу(); резюме::Mat img1; вернуть a.exec(); } программа выдает ошибку
"неопределенная ссылка на `cv::Mat::Mat()'"
Добавляю, что я работаю в Windows, я загрузил версию Opencv4 x64 с помощью vcpkg и использую «MinGW 7.3.0 64-bit для C++» в качестве компилятора для моего проекта создателя qt
Я пробовал использовать различные комбинации обратных и прямых косых черт (также //) в переменных INLCUDEPATH и LIBS, но это не помогло. Я вижу, что программа «видит» включаемые файлы и файлы .lib, потому что запуск qmake не выдает никаких ошибок, поэтому я чувствую себя немного беспомощным в этой ситуации. Буду очень благодарен за любую помощь.
Недавно я пытался загрузить эти пакеты C++, загруженные с помощью vcpkg, в проект создателя qt. Я настроил проект с файлом qmake .pro. Я искал в Интернете, что для связывания внешних библиотек мне нужно добавить две переменные в файл .pro INCLUDEPATH и LIBS. Мой текущий файл .pro выглядит так:
'''
QT += основной графический интерфейс moreThan(QT_MAJOR_VERSION, 4): виджеты QT += КОНФИГ += С++11 # Вы можете сделать так, чтобы ваш код не компилировался, если он использует устаревшие API. # Для этого раскомментируйте следующую строку. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # отключает все API, устаревшие до Qt 6.0.0 ВКЛЮЧИТЬПУТЬ += C:\vcpkg\vcpkg\installed\x64-windows\include LIBS += -LC:/vcpkg/vcpkg/installed/x64-windows/lib \ -lopencv_calib3d4 \ -lopencv_core4 \ -lopencv_features2d4 \ -lopencv_flann4 \ -lopencv_highgui4 \ -lopencv_imgproc4 \ -lopencv_ml4 \ -lopencv_objdetect4 \ -lopencv_video4 ИСТОЧНИКИ += \ основной.cpp \ mainwindow.cpp ЗАГОЛОВКИ += \ mainwindow.h ФОРМЫ += \ mainwindow.ui # Правила по умолчанию для развертывания. qnx: target.path = /tmp/$${TARGET}/bin еще: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): УСТАНАВЛИВАЕТ += цель Когда я нажимаю «Запустить qmake», программа не выдает никаких ошибок, поэтому я предполагаю, что создатель QT каким-то образом видит эти библиотеки. Но когда я запускаю main.cpp
#include "mainwindow.h" #include #include #include #include #include "opencv2/opencv.hpp" int main(int argc, char *argv[]) { QApplication a(argc, argv); Главное окно w; ш.шоу(); резюме::Mat img1; вернуть a.exec(); } программа выдает ошибку
"неопределенная ссылка на `cv::Mat::Mat()'"
Добавляю, что я работаю в Windows, я загрузил версию Opencv4 x64 с помощью vcpkg и использую «MinGW 7.3.0 64-bit для C++» в качестве компилятора для моего проекта создателя qt
Я пробовал использовать различные комбинации обратных и прямых косых черт (также //) в переменных INLCUDEPATH и LIBS, но это не помогло. Я вижу, что программа «видит» включаемые файлы и файлы .lib, потому что запуск qmake не выдает никаких ошибок, поэтому я чувствую себя немного беспомощным в этой ситуации. Буду очень благодарен за любую помощь.
Мобильная версия