2013-02-03 50 views
0

我一直在试图编译绝对年龄这个简单的代码,但没有运气。在OpenCV中链接库

#include "highgui.h" 
#include "opencv2/highgui/highgui_c.h" 
int main() 
{  
    int cvNamedWindow(const char* name,int flags = CV_WINDOW_AUTOSIZE); 
    { 
     cvNamedWindow("sample"); 
    } 

    cvDestroyWindow("sample");  
} 

我使用的是Ubuntu 12.04平台。起初,我得到的错误说,

highgui.h未找到。

我现在纠正了,但现在我正在得到新的。我使用的编译指令是:

gcc -o window window.c -I/usr/include/opencv/ 

新的错误是:

window.c:8:48: error: expected ‘;’, ‘,’ or ‘)’ before ‘=’ token 
window.c:10:6: error: too few arguments to function ‘cvNamedWindow’ 

现在,我甚至不能确定是什么问题了。在OpenCV中编译似乎没有任何明确的解释。请有人帮助因为我真的需要采取这种行动,不能整天花在试图编译!由于

+0

什么是错的语法? –

+0

我甚至不确定了。你看到什么不对吗? – user2035796

+0

是的,看我的答案。 –

回答

0

尝试编译如下:

#include "highgui.h" 
#include "opencv2/highgui/highgui_c.h" 
int main() {  
    cvNamedWindow("sample"); 


    cvDestroyWindow("sample"); 
    return 0; 
} 
+0

它一直说“cvNamedWindow中的参数太少” – user2035796

+1

@ user2035796 ...那是因为你使用的'gcc'不能编译上面提到的C++代码。 'cvNamedWindow'需要2个参数。在'C'中没有默认参数。您必须将所有参数传递给函数。将'CV_WINDOW_AUTOSIZE'作为第二个参数传递给'cvNamedWindow'。 – sgarizvi

+0

使用cvNamedWindow(“sample”,0);其中'0'表示您可以调整窗口大小,'1'不能调整大小。 – Mzk

0

用C没有默认参数。

你应该叫cvNamedWindow()如下:

cvNamedWindow("sample", CV_WINDOW_AUTOSIZE); 

全码:

#include "highgui.h" 
#include "opencv2/highgui/highgui_c.h" 

int main() {  
    cvNamedWindow("sample",CV_WINDOW_AUTOSIZE); 
    cvDestroyWindow("sample"); 
    return 0; 
}