0

我已经链接到我想要使用的库并将头文件添加到我的项目中。并且代码没有在红色曲线中显示任何错误,但是当我尝试运行它时,它给了我以下错误:

Error   1   error LNK2001: unresolved external symbol _cvDestroyWindow  C:\Users\Jos\documents\visual studio 2010\Projects\ocv\ocv\opcv.obj ocv
Error   2   error LNK2001: unresolved external symbol _cvWaitKey    C:\Users\Jos\documents\visual studio 2010\Projects\ocv\ocv\opcv.obj ocv
Error   3   error LNK2001: unresolved external symbol _cvNamedWindow    C:\Users\Jos\documents\visual studio 2010\Projects\ocv\ocv\opcv.obj ocv
Error   4   error LNK2001: unresolved external symbol _cvLoadImage  C:\Users\Jos\documents\visual studio 2010\Projects\ocv\ocv\opcv.obj ocv
Error   5   error LNK2001: unresolved external symbol _cvShowImage  C:\Users\Jos\documents\visual studio 2010\Projects\ocv\ocv\opcv.obj ocv
Error   6   error LNK2001: unresolved external symbol _cvReleaseImage   C:\Users\Jos\documents\visual studio 2010\Projects\ocv\ocv\opcv.obj ocv
Error   7   error LNK1120: 6 unresolved externals   C:\Users\Jos\documents\visual studio 2010\Projects\ocv\Release\ocv.exe  ocv

这是代码:

#include "highgui.h"

int main(int argc, char **argv) {
    IplImage* img = cvLoadImage(argv[1],CV_LOAD_IMAGE_UNCHANGED);
    cvNamedWindow("Example1",CV_WINDOW_AUTOSIZE);
    cvShowImage("Example1",img);
    cvWaitKey(0);
    cvReleaseImage(&img);
    cvDestroyWindow("Example1");
}   
4

4 回答 4

4

好的,它终于起作用了。我的电脑是一个64-bit系统。但该项目是在Win32平台上运行的。所以我将其更改为x64并从中复制设置Win32

于 2013-08-20T12:05:28.847 回答
1

由于您使用的是最新版本的 OpenCV,因此可以通过以下方式访问 C 模块

#include <opencv2\highgui\highgui_c.h>

或者

#include "opencv2\highgui\highgui_c.h"

假设该opencv2文件夹在您的包含目录列表中。

但是,我强烈建议您开始在 OpenCV 中使用Mat对象(而不是IplImage)和其他 C++ 等效项。它将使您的生活更轻松,而不会显着降低性能。

于 2013-08-19T12:49:31.323 回答
0

如果您在调试模式下运行,请使用调试库,否则发布一次。您可以在 OPENCV 文件夹层次结构中找到这两个版本。

于 2013-08-19T12:27:45.930 回答
0

看来您没有附加highgui.lib,并且可能是legacy.lib 到项目。(我在文件名中省略了版本号)。

于 2013-08-19T13:27:02.483 回答