![](/img/trans.png)
[英]Visual Studio c++ - program fails without debugger, works fine with debugger
[英]Visual Studio debugger fails but program runs fine when built…?
我正在研究立体声差异程序,我有左右图像,我正在尝试读取。但是我在尝试调试时遇到错误,但如果我只是构建它就可以正常工作...所以我刚刚将代码简化为非常简单的东西......
#include <bunch of opencv bits...>
using namespace std;
using namespace cv;
int main()
{
Mat Left= imread("Left.png", 0); //read images as grayscale
Mat Right= imread("Right.png", 0);
while (true) {
imshow("Left",Left);
imshow("Right",Right);
}
}
运行调试(F5)我进入行imshow(“左”,左); 并崩溃,报告OpenCV错误:坏标志(参数或结构字段)(无法识别或不支持的数组类型)....等等等等
单步执行代码,我可以看到没有任何内容被读取存储在Left或Right中
然而,如果我只是构建程序(F7)并从资源管理器运行.exe(Misc Projects \\ SteroExp \\ Debug)......那么事情变得非常令人困惑....它运行完全正常。
我的想法...... VS是否在PC上某个不存储图像的不同临时目录中运行调试版本?
我正在使用... W7 64bit,VS2010,C ++,OpenCV 2.3.1
问题是当前的工作目录。 当你从资源管理器运行时,当前目录是'Misc Projects \\ SteroExp \\ Debug',但是当你来自调试器时,它是'Misc Projects \\ SteroExp'。 答案是将图像文件移动到正确的目录。
首先,仔细检查Project |中的工作目录 属性| Debugging> WorkingDirectory设置为包含这两个文件的目录。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.