【问题标题】:LNK2019: Unresolved External Symbol in OpenCVLNK2019:OpenCV 中未解析的外部符号
【发布时间】:2019-05-27 13:11:23
【问题描述】:

我一直在尝试在 Windows 10 中配置 opencv 库,这简直是一场噩梦!

这是我的代码:

#include <opencv2/video.hpp>
#include <opencv2/videoio.hpp>
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>
#include <svm.h>
#include <stdio.h>

using namespace std;
using namespace cv;

int main(int argc, char** argv) {

    (...)

    /*2. PROCESAR VÍDEO*/

    int c;
    IplImage* color_img;
    CvCapture* cv_cap = cvCaptureFromCAM(0);
    cvNamedWindow("Video", 0); // create window
    for (;;) {
        color_img = cvQueryFrame(cv_cap); // get frame
        if (color_img != 0)
            cvShowImage("Video", color_img); // show frame
        c = cvWaitKey(10); // wait 10 ms or for key stroke
        if (c == 27)
            break; // if ESC, break and quit
    }
    /* clean up */

    cvReleaseCapture(&cv_cap);
    cvDestroyWindow("Video");
    return (EXIT_SUCCESS);
}

这是我的 Visual Studio 17 配置:

  • 在 C/C++ 中

-在链接器中:

在链接器/输入中,我添加了以下库:

  • opencv_calib3d345d.lib opencv_core345d.lib opencv_features2d345d.lib opencv_flann345d.lib opencv_highgui345d.lib opencv_imgproc345d.lib libpng.lib libtiff.lib zlib.lib IlmImf.lib libjasper.lib libjpeg-turbo.lib opencv_ml345d.lib opencv_objdetect345d.lib opencv_photo345d.lib opencv_stitching345d.lib opencv_superres345d.lib opencv_video345d.lib opencv_videostab345d.lib

还有: - 我有opencv 3.4.5 版本 - 在 x64 中运行 - 在多次尝试使用 MINGW32、cygwin 和 Netbeans 之后,我已经使用 cmake 和 VisualStudio17 构建了库。

IDE 中没有显示错误,但在编译时显示著名的错误“LNK2019 unresolved external symbol”。我已尝试使用该主题的所有其他帖子的建议,但找不到解决方案。

错误 LNK2019 símbolo externo "class cv::Mat __cdecl cv::imread(class cv::String const &,int)" (?imread@cv@@YA?AVMat@1@AEBVString@1@ H@Z) sin resolver al que se hace referencia en la función main Project1 C:\Users\Mario I\source\repos\Project1\Project1\Main.obj 1

Error LNK2019 símbolo externo cvCreateCameraCapture sin resolver al que se hace referencia en la función main Project1 C:\Users\Mario I\source\repos\Project1\Project1\Main.obj 1

Error LNK2019 símbolo externo cvQueryFrame sin resolver al que se hace referencia en la función main Project1 C:\Users\Mario I\source\repos\Project1\Project1\Main.obj 1

Error LNK2019 símbolo externo cvReleaseCapture sin resolver al que se hace referencia en la función main Project1 C:\Users\Mario I\source\repos\Project1\Project1\Main.obj 1

Error LNK1120 4 externos sin resolver Project1 C:\Users\Mario I\source\repos\Project1\x64\Debug\Project1.exe 1

【问题讨论】:

  • 请添加错误消息的确切文本。在 Visual Studio 中,最好从“输出”选项卡中复制它。您可以使用Alt+2 进入输出选项卡。
  • 我知道它有点老了,但是the process is pretty easy to follow....
  • 谢谢@drescherjm。刚刚添加了一张图片(抱歉是西班牙语)
  • 刚刚添加了一张图片在 StackOverflow 上,实际文本比文本图片更受欢迎。
  • 你需要 opencv_imgcodecs345d.lib 这里还有一些模块,你可能也想使用 videoio,也许:docs.opencv.org/3.3.1/index.html

标签: c++ c opencv libraries lnk2019


【解决方案1】:

我在 Windows 10、x64 和 Visual Studio 2015 中使用最新的预构建 OpenCV 4.0 库。我使用环境变量进行设置:

  1. setx -m OPENCV_DIR D:\Vision\opencv\build\x64\vc14
  2. 用 - echo %OPENCV_DIR% 检查它
  3. 对于 VS2015 调试,平台 x64,输入以下项目设置:

其他包含路径:$(OPENCV_DIR)....\include

其他库目录:%OPENCV_DIR%\lib

其他依赖:opencv_world400d.lib;

  1. 用于 VS 版本

其他依赖:opencv_world400.lib;

小心将平台设置为 x64。

另见:https://docs.opencv.org/3.0-rc1/d3/d52/tutorial_windows_install.html#tutorial_windows_install_path

【讨论】:

  • 成功了!!!我删除了 3.4.5 版本,并按照您的步骤创建了一个新项目(删除系统路径中的上一行)。 (只有我必须在步骤 1 中更改为实际路径,并在“其他包含路径”中写入完整路径)。最后!谢谢你uuuu
猜你喜欢
  • 1970-01-01
  • 2014-11-07
  • 2013-06-01
  • 1970-01-01
  • 2020-06-28
  • 2023-03-28
  • 2022-01-06
  • 2014-09-19
  • 2012-12-17
相关资源
最近更新 更多