链接 OpenCV 失败,LNK 2019 未解析的外部符号

Posted

技术标签:

【中文标题】链接 OpenCV 失败,LNK 2019 未解析的外部符号【英文标题】:Linking OpenCV fails with LNK 2019 unresolved external symbol 【发布时间】:2019-03-25 15:01:34 【问题描述】:

我知道,还有一些关于该主题的请求,但我想我已经做了一切,写在那里。我刚刚下载了 OpenCV,但我无法运行它。

我做了以下操作:添加环境变量 OPENCV_DIR = ..\opencv\build\x64\vc14 添加环境变量 Path = %OPENCV_DIR%/bin

属性 --> C/C++ -> 常规 --> 其他包括目录设置为 ../opencv/build/include

Properties --> Linker --> General -->Additional Library Directoies added ../opencv/build/x64/vc14/lib

属性 --> 链接器 --> 常规 --> 添加了其他库目录 ../opencv/build/lib/Debug

属性 --> 链接器 --> 输入 --> 添加的附加依赖项: opencv_calib3d343d.lib opencv_core343d.lib opencv_features2d343d.lib opencv_flann343d.lib opencv_highgui343d.lib opencv_imgcodecs343d.lib opencv_imgproc343d.lib opencv_ml343d.lib opencv_objdetect343d.lib opencv_photo343d.lib opencv_shape343d.lib opencv_stitching343d.lib opencv_superres343d.lib opencv_ts343d.lib opencv_video343d.lib opencv_videoio343d.lib opencv_videostab343d.lib opencv_world343d.lib

将 CPU 调试设置为 x64

我的代码很简单:

#include <iostream>
#include "opencv2/opencv.hpp"

int main() 
    cv::Mat SrcImg = cv::imread("C:\\HomeC\\Screenshots\\SC_01.bmp", -1);

    std::cout << "Application finished. Press ENTER to exit..." <<     std::endl;
    std::cin.ignore();

我得到的错误是:LNK2019 unresolved external symbol "int __cdecl cv::_interlockedExchangeAdd(int *,int)" (?_interlockedExchangeAdd@cv@@YAHPEAHH@Z) referenced in function "public: void __cdecl cv::Mat::release(void)" (?release@Mat@cv@@QEAAXXZ)

LNK2019 unresolved external symbol "class cv::Mat __cdecl cv::imread(class std::basic_string&lt;char,struct std::char_traits&lt;char&gt;,class std::allocator&lt;char&gt; &gt; const &amp;,int)" (?imread@cv@@YA?AVMat@1@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z) referenced in function main

所以,你可以看到,我阅读了文档,但仍然在谷歌上搜索了有关 OpenCV 错误的所有内容。

有没有人有其他想法,如何让它运行?

问候, 一月

【问题讨论】:

您使用的是 Visual Studio 2015 还是 2017? 我用的是VS2017 好的,我明白了 - 我刚刚删除并重新安排了项目。我认为,问题在于,我还在旧项目中通过 NuGet 引用了 OpenCV。不是它的工作。谢谢。 【参考方案1】:

好的,现在它正在工作。我也必须在路径文件夹中指定包含 dll 的文件夹。我还重新安排了项目,因为我还在旧项目中通过 NuGet 引用了 OpenCV。

【讨论】:

以上是关于链接 OpenCV 失败,LNK 2019 未解析的外部符号的主要内容,如果未能解决你的问题,请参考以下文章

错误 LNK2019:未解析的外部符号 opencv

Qt 与 OpenCV:LNK2019:未解析的外部符号和未找到文件 mainwindow.obj

MSVC 中的链接错误 LNK2019,带有 __imp__ 前缀的未解析符号,但应该来自静态库

错误 LNK2019:Visual Studio 中未解析的外部符号 [重复]

Qt Creator LNK2019:使用 OpenCV 无法解析的外部符号

error LNK2019: 无法解析的外部符号