LNK2019:OpenCV 中未解析的外部符号
LNK2019: Unresolved External Symbol in OpenCV
几天来我一直在尝试在 Windows10 中配置 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 Studio17配置:
- 在C/C++
-在链接器中:
在 Linker/Input 中,我添加了以下库:
- 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.libopencv_videostab345d.lib
还有:
- 我有 opencv 3.4.5 版本
- 运行 在 x64 中
- 在使用 MINGW32、cygwin 和 Netbeans 进行了多次尝试后,我使用 cmake 和 VisualStudio17 构建了库。
在 IDE 中没有显示错误,但在编译时显示著名的错误 "LNK2019 unresolved external symbol"。我已经尝试了与该主题相关的所有其他帖子的建议,但找不到解决方案。
Error 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
我正在使用带有 Windows 10、x64 和 Visual Studio 2015 的最新预构建 OpenCV 4.0 库。我使用环境变量设置它:
- setx -m OPENCV_DIR D:\Vision\opencv\build\x64\vc14
- 用-echo %OPENCV_DIR%
检查
- 对于 VS2015 调试,平台 x64,输入以下项目设置:
其他包含路径:$(OPENCV_DIR)...\include
其他库目录:%OPENCV_DIR%\lib
附加依赖项:opencv_world400d.lib;
- VS 版本
附加依赖项:opencv_world400.lib;
注意平台设置为x64。
另见:https://docs.opencv.org/3.0-rc1/d3/d52/tutorial_windows_install.html#tutorial_windows_install_path
几天来我一直在尝试在 Windows10 中配置 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 Studio17配置:
- 在C/C++
-在链接器中:
在 Linker/Input 中,我添加了以下库:
- 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.libopencv_videostab345d.lib
还有: - 我有 opencv 3.4.5 版本 - 运行 在 x64 中 - 在使用 MINGW32、cygwin 和 Netbeans 进行了多次尝试后,我使用 cmake 和 VisualStudio17 构建了库。
在 IDE 中没有显示错误,但在编译时显示著名的错误 "LNK2019 unresolved external symbol"。我已经尝试了与该主题相关的所有其他帖子的建议,但找不到解决方案。
Error 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
我正在使用带有 Windows 10、x64 和 Visual Studio 2015 的最新预构建 OpenCV 4.0 库。我使用环境变量设置它:
- setx -m OPENCV_DIR D:\Vision\opencv\build\x64\vc14
- 用-echo %OPENCV_DIR% 检查
- 对于 VS2015 调试,平台 x64,输入以下项目设置:
其他包含路径:$(OPENCV_DIR)...\include
其他库目录:%OPENCV_DIR%\lib
附加依赖项:opencv_world400d.lib;
- VS 版本
附加依赖项:opencv_world400.lib;
注意平台设置为x64。
另见:https://docs.opencv.org/3.0-rc1/d3/d52/tutorial_windows_install.html#tutorial_windows_install_path