Как корректно выполнить подключение openCV к проекту на QT C++?

Как решить проблему "undefined reference to `cv::Mat::~Mat()'" при импорте и использовании библиотеки openCV 4.8 в Qt?
  • 1 ноября 2023 г. 14:39
Ответы на вопрос 1
Для корректного подключения OpenCV к проекту на Qt C++ необходимо выполнить следующие шаги:

1. Установите OpenCV на вашу операционную систему. Для этого вы можете использовать систему управления пакетами, такую как apt, yum или homebrew, или собрать OpenCV из исходного кода. Убедитесь, что вы устанавливаете OpenCV версии 4.8 или выше.

2. Создайте новый проект в Qt Creator или откройте существующий. Добавьте файлы с исходным кодом, которые будут использовать функционал OpenCV.

3. Откройте файл `.pro` вашего проекта и добавьте следующие строки в конец файла:

```cpp
INCLUDEPATH += путь_к_папке_include_OpenCV
LIBS += -Lпуть_к_папке_lib_OpenCV -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_imgcodecs
```

Путь_к_папке_include_OpenCV и путь_к_папке_lib_OpenCV должны указывать на папки include и lib вашей установки OpenCV соответственно. Эти пути могут отличаться в зависимости от используемой операционной системы и способа установки.

4. Сохраните изменения в файле `.pro` и перекомпилируйте свой проект.

Если после выполнения этих шагов у вас появляется ошибка "undefined reference to `cv::Mat::~Mat()'", это означает, что вы не добавили все необходимые модули OpenCV в свой `LIBS`. 

Чтобы решить эту проблему, добавьте в `LIBS` все модули, которые вы используете в вашем проекте. Например, если вы используете модуль определения объектов (`dnn`), добавьте `-lopencv_dnn` в ваш `LIBS`. Если вы используете другие модули OpenCV, добавьте их соответствующие имена в `LIBS`, чтобы их можно было найти и связать при компиляции.

После этих изменений перекомпилируйте ваш проект снова, и ошибка "undefined reference to `cv::Mat::~Mat()'" должна быть устранена.
Похожие вопросы