OpenCV不适用于Visual Studio。
OpenCV doesn't work with Visual Studio
我刚刚在电脑上安装了openCV版本3.00测试版,我正在尝试用VS2013进行测试。我遵循了快速入门指南:
1( 使用预构建库安装windows。
2( OpenCV在Microsoft VS中,使用本地方法和x64/vc12
目录作为库。
结果,他们的例子(列在链接#2中(产生了一个错误:
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
if (argc != 2)
{
cout << " Usage: display_image ImageToLoadAndDisplay" << endl;
return -1;
}
Mat image;
image = imread(argv[1], IMREAD_COLOR); // Read the file
if (image.empty()) // Check for invalid input
{
cout << "Could not open or find the image" << std::endl;
return -1;
}
namedWindow("Display window", WINDOW_AUTOSIZE); // Create a window for display.
imshow("Display window", image); // Show our image inside it.
waitKey(0); // Wait for a keystroke in the window
return 0;
}
输出为:
1>------ Build started: Project: test_openCV, Configuration: Debug Win32 ------
1>LINK : fatal error LNK1104: cannot open file 'opencv_calib3d300d.lib'
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
据我所知,我的程序可以看到openCV库,但由于某种原因无法打开它们。请帮忙。
感谢
更新:尝试执行前四条评论中的建议,但仍然没有结果。所以我会在这里发布完整的信息:
项目:CUDA 6.5(我需要与CUDA合作(。
源文件:Source.cpp
模式:调试,x64。
环境变量:
OPENCV_DIR: C:programsmishaopencvbuildx64vc12
Path (the last string): %OPENCV_DIR%bin
页面属性:
CC++ -> General -> Additional Include Directories(last string):
$(OPENCV_DIR)....include
Linker -> General -> Additional Library Directories(last string):
$(OPENCV_DIR)lib
Linker -> Input -> Additional Dependencies:
opencv_calib3d300d.lib
opencv_core300d.lib
opencv_features2d300d.lib
opencv_flann300d.lib
opencv_highgui300d.lib
opencv_imgcodecs300d.lib
opencv_imgproc300d.lib
opencv_ml300d.lib
opencv_objdetect300d.lib
opencv_photo300d.lib
opencv_shape300d.lib
opencv_stitching300d.lib
opencv_superres300d.lib
opencv_ts300d.lib
opencv_video300d.lib
opencv_videoio300d.lib
opencv_videostab300d.lib
输出:
1>------ Build started: Project: test_openCV, Configuration: Debug x64 ------
1>LINK : fatal error LNK1104: cannot open file 'opencv_calib3d300d.lib'
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
所以,由于某些原因,我无法构建x64项目。错误是一样的。
更新2:如果你能构建这个例子(或任何使用OpenCV的例子(,你能把它发送到genkin@physics.msu.ru?我会自己解决的
不幸的是,该解决方案对我不起作用。
我只添加了位于我的$(OPENCV_DIR(\lib文件夹中的库作为附加依赖项(Linker->Input->additional dependencies:(。即:opencv_ts300d.lib;opencv_world300d.lib.
经过长时间的不同尝试,我在这里找到了答案。对于x64
项目,除了我上面所做的,你还必须:
1( 设置环境变量后重新启动电脑。未重新启动,未在我的计算机上更新变量路径。
2( 除了上面添加的库之外,您还必须添加(尽管在本例中可能没有使用其中的一些库(:
ippicvmt.lib
IlmImfd.lib
libtiffd.lib
libpngd.lib
libjasperd.lib
libjpegd.lib
libwebpd.lib
zlibd.lib
comctl32.lib
编辑:我最近不得不在一台新电脑上再次安装它。正如用户1060873所指出的,你只需要添加位于$OPENCV$/lib文件夹中的库。例如,在我的电脑上,它是C:opencvbuildx64vc12lib
。注意,对于调试模式,您应该添加opencv_world310d.lib
,而对于发布版opencv_world310.lib
,则应添加
我也面临同样的问题。我正在将win7 x64与VS2015和OpenCV 3.2一起使用经过几个小时的努力,我终于找到了答案。每个版本都不相同,并且可能存在一些差异。这就是我所做的:
- 查找"附加库"的库位置,它位于
$OPENCV$/lib
文件夹中 - 仅将这些是
$OPENCV$/lib
文件夹放入附加库(Project properties, Configuration Properties, Linker, Input
(中。在我的情况下,我将opencv_world300d.lib
(根据官方教程,它不是最新的!(放入我的附加库中。但在我检查了库文件夹后,有opencv_world320d.lib
,所以我写了320,而不是300
通过取消选中Linker->Input->Additional Dependencies 下的"从父项或项目默认值继承"复选框来解决此问题
我添加了"opencv_world300d.lib",因为我使用的是opencv3.0.0版本x64 vc11
- Visual Studio 2015:Extern "C" 和 "export" 关键字
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 试图在visual studio上用C++创建一个桌面应用程序
- 如何在MS Visual Studio 2019中运行QT UI
- 如何使用Visual Studio 2017在C++中为参数化对象数组使用唯一指针
- Visual Studio Code - C++ Debugger 無法啟動
- Visual Studio 2019:插入多个C++风格的单行注释
- Visual Studio Code "undefined reference to `WinMain@16'"
- Visual studio代码重构似乎不起作用(例如,重命名符号-f2)
- Visual Studio中的函数声明和函数定义问题
- 如何指定我希望我的LIB链接到的DLL文件?-Visual Studio 2019
- Visual Studio mkl_link_tool.exe链接错误
- Visual Studio(或任何其他工具)能否将地址解释为调用堆栈(boost上下文)的开头
- 不同的Visual Studio版本中缺少.dll
- 用Visual Studio在C++中嵌入Julia
- Visual Studio 2017循环自动向量化问题
- 有没有办法在远程设备上打开和编辑visual Studio 2017解决方案
- 尝试使用继承和模板实现CRTP.Visual Studio正在生成编译器错误
- Visual Studio在尝试读取resource.txt文件时崩溃
- Visual Studio 2017 不允许我创建 C++ 专用模板