Eclipse的调试模式下的命令提示符? (OpenCV + Eclipse + Win7)

时间:2011-04-30 07:25:39

标签: windows eclipse opencv

我是Eclipse的初学者。我现在拥有在Windows 7上运行的带有OpenCV库的Eclipse C / C ++ IDE。到目前为止,它在花费数小时试图让它运行之后才能工作。但后来我意识到Eclipse不会弹出命令提示符,因为VS2010在调试时会这样做。此外,Eclipse的调试模式只是停留在那里而拒绝输出任何内容。但是,如果代码不涉及OpenCV的事情,它会再次起作用。

以下是我用于测试的代码。它从网络摄像头捕获图像并将其输出到屏幕。无限循环(直到你按'q')确保它不断地从摄像机抓取新的输入。

我浏览了工作区并运行刚刚编译的exe,它运行得很完美。所以我认为代码中没有任何错误(无论如何它是一个示例代码

简而言之,我可以在调试模式下弹出命令提示符窗口吗?当代码涉及一些OpenCV函数时,为什么Eclipse控制台会卡住?

#include <stdio.h>
#include <stdlib.h>
#include <tchar.h>
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
#include <iostream>

int _tmain(int argc, _TCHAR* argv[])
{
    CvCapture *capture = 0;
    IplImage  *frame = 0;
    int       key = 0;

    /* initialize camera */
    capture = cvCaptureFromCAM( 0 );

    /* always check */
    if ( !capture ) {
        printf("Cannot open initialize webcam!\n");
        return 1;
    }

    /* create a window for the video */
    cvNamedWindow( "result", CV_WINDOW_AUTOSIZE );

    while( key != 'q' ) {
        /* get a frame */
        frame = cvQueryFrame( capture );

        /* always check */
        if( !frame ) break;

        /* display current frame */
        cvShowImage( "result", frame );

        /* exit if user press 'q' */
        key = cvWaitKey( 1 );
    }

    /* free memory */
    cvDestroyWindow( "result" );
    cvReleaseCapture( &capture );

    return 0;
}

1 个答案:

答案 0 :(得分:1)

这是因为您已经将Windows 7系统变量PATH设置为MinGw / bin和已编译的opencv bin目录。因此,当您从文件夹运行程序时,系统会自动从其PATH中获取所需的二进制文件,并且程序可以正常运行。

我不知道为什么但Eclipse不直接从系统环境PATH变量中获取它。所以我们必须自己设置它。

     go to Preferences > C/C++ (Expand it) > Environment > Add:

     "Name:PATH"
      "Value:C:\MinGW\bin;C:\opencv_MinGW\bin"

其中opencv_MinGW是我编译opencv的文件夹