Изучение openCV, Получение LNK2019 (неразрешенный внешний символ) - PullRequest
0 голосов
/ 17 марта 2020

В настоящее время я начинаю изучать openCV и visual studio 2017 для проекта на работе. В настоящее время я следую нескольким учебникам от openCV, однако получаю 8 ошибок LNK2019. Не могли бы вы, ребята, помочь мне с этим?

Я совершенно новичок в кодировании в целом, поэтому заранее извиняюсь, если задаю какие-то глупые вопросы.

Это мой текущий код:

#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>

using namespace std;
using namespace cv;

int main(int argc, char** argv)
{
    String imageName( "HappyFish.jpg" ); //by default
    if (argc > 1)
    {
        imageName = argv[1];
    }
    Mat image;

    image = imread(samples::findFile(imageName), IMREAD_COLOR); //Read the file

    if (image.empty()) //checking for valid input
    {
        cout << "Could not open or find the image" << std::endl;
        return -1;
    }

    namedWindow("Display window", WINDOW_AUTOSIZE); //create a window for the display
    imshow("Display window", image); //showing our image inside the window
    waitKey(0); //Wait for a keystroke in the window
    return 0;
}

И это мои ошибки:

Код серьезности Описание Ошибка состояния подавления строки файла проекта LNK2019 неразрешенный внешний символ "void __cdecl cv :: fastFree (void *)" ( ? fastFree@cv@@YAXPAX@Z) упоминается в функции "publi c: __thiscall cv :: Mat :: ~ Mat (void)" (?? 1Mat@cv@@QAE@XZ) Open cv test C: \ Users \ BRR \ source \ repos \ Open cv test \ Open cv test \ Open cv test.obj 1

Код серьезности Описание Ошибка состояния подавления строки файла проекта LNK2019 неразрешенный внешний символ "void __cdecl cv :: error (int, класс std :: basic_string, class std :: allocator> const &, char const *, char const *, int) "(? error@cv@@YAXHABV? $basic_string@DU?$char_traits@D@std@@V? $allocator@D@2@@std@@PBD1H@Z), на который ссылается функция" publi c: class cv :: Mat & __thiscall cv :: Mat :: operator = (class cv :: Mat &&) "(?? 4Mat@cv@@QAEAAV01@ $$ QAV01 @@ Z) Open cv test C: \ Users \ BRR \ source \ repos \ Open c v test \ Open cv test \ Open cv test.obj 1

Код серьезности Описание Ошибка состояния подавления строки файла проекта LNK2019 неразрешенный внешний символ "publi c: void __thiscall cv :: Mat :: deallocate (void) "(? deallocate@Mat@cv@@QAEXXZ) упоминается в функции" publi c: void __thiscall cv :: Mat :: release (void) "(? release@Mat@cv@@QAEXXZ) Открыть тест cv C: \ Users \ BRR \ source \ repos \ Open cv test \ Open cv test \ Open cv test.obj 1

Код серьезности Описание Ошибка состояния подавления строки файла проекта LNK2019 неразрешенный внешний символ "class std :: basic_string, класс std :: allocator> __cdecl cv: : samples :: findFile (класс std :: basic_string, класс std :: allocator> const &, bool, bool) "(? findFile@samples@cv@@YA? AV? $basic_string@DU?$char_traits@D@std@@V? $allocator@D@2@@std@@ABV34@_N1@Z), указанный в функции _main Open cv test C: \ Users \ BRR \ source \ repos \ Open cv test \ Open cv test \ Open cv test.obj 1

Код серьезности Описание Класс проекта Ошибка состояния подавления строки файла LNK2019 неразрешенный внешний символ "класс cv :: Mat __cdecl cv :: imread (класс std :: basic_string, класс std :: alloca tor> const &, int) "(? imread@cv@@YA? AVMat@1@ABV? $basic_string@DU?$char_traits@D@std@@V? $allocator@D@2@@std@@H@Z), на которые ссылается функция _main Open cv test C: \ Users \ BRR \ source \ repos \ Open cv test \ Open cv test \ Open cv test.obj 1

Код серьезности Описание Ошибка состояния подавления строки файла проекта LNK2019 неразрешенный внешний символ "void __cdecl cv :: namedWindow (класс std :: basic_string, класс std :: allocator> const &, int) "(? namedWindow@cv@@YAXABV? $basic_string@DU?$char_traits@D@std@@V? $allocator@D@2@@std@@H@Z), на который ссылается функция _main Open cv test C: \ Users \ BRR \ source \ repos \ Open cv test \ Open cv test \ Open cv test.obj 1

Код серьезности Описание Ошибка состояния подавления строки файла проекта LNK2019 неразрешенный внешний символ "int __cdecl cv :: waitKey (int)" (? waitKey@cv@@YAHH@Z), указанный в функции _main Open cv test C: \ Users \ BRR \ source \ repos \ Open cv test \ Open cv test \ Open cv test.obj 1

Код серьезности Описание Ошибка состояния подавления строки файла проекта LNK2019, неразрешенный внешний символ "void __cdecl cv :: imshow (класс std :: basic_string, класс std :: allocator> const & , класс cv :: debug_build_guard :: _ InputArray const &) "(? imshow@cv@@YAXABV? $basic_string@DU?$char_traits@D@std@@V? $allocator@D@2@@std@@ABV_InputArray@debug_build_guard@1@@Z), указанный в функции _main Open cv test C: \ Users \ BRR \ source \ repos \ Open cv test \ Open cv test \ Open cv test.obj 1

заранее спасибо

Ответы [ 2 ]

0 голосов
/ 17 марта 2020

Для меня эта проблема обычно вызвана тем, что компоновщик не указал на правильные файлы lib. Это завершается пошагово, сначала вам нужно указать VS на папку, содержащую файлы lib, затем вам нужно сказать, какие файлы lib вы хотите.

Первый. Проект> Свойства. Затем Свойства конфигурации> C / C ++> Общие. В поле «Дополнительные каталоги включения» добавьте расположение адреса в папку OpenCv lib. Моя выглядит так.

OpenCV_3_3_0 \ build \ VC17 \ lib \ Debug

OpenCV_3_3_0 \ build \ VC17 \ lib \ Release

Теперь нам нужно сказать, какие библиотеки нам нужны. Итак, во вкладке свойств проекта VS, Go в Свойства конфигурации> Linker> Input и затем поле Дополнительные зависимости.

Теперь вам нужно добавить имена нужных вам библиотек. Примером является opencv_calib3d330.lib

Все библиотеки находятся в папке, поэтому просто продолжайте добавлять все библиотеки, пока ошибка не исчезнет (в зависимости от того, какая функция используется, зависит от того, какая библиотека вам нужна)

Lib folder for Release

Если вы неправильно построили библиотеки для VS17, вам нужно будет следовать этим инструкциям.

https://docs.opencv.org/2.4/doc/tutorials/introduction/windows_install/windows_install.html#windows -установка

0 голосов
/ 17 марта 2020

Похоже, вы не включили необходимые зависимости: вы должны следовать: https://docs.opencv.org/2.4/doc/tutorials/introduction/windows_visual_studio_Opencv/windows_visual_studio_Opencv.html

Это объясняется очень подробно там. Ищите: «Дополнительные зависимости», но вам, вероятно, следует пересмотреть другие шаги, которые вы предприняли для настройки проекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...