gcc编译错误cv.h找不到Opencv

每次我尝试编译一个示例程序时,我都没有findcv.h,找不到highgui.c。 我试图去opencv中的包含文件夹,并做了一个sudo复制*到usr / includes并没有太大的帮助:我得到了以下输出可以有人告诉我,我做错了什么?

stream_server.c:19:25: fatal error: /usr/include/highgui.h: Permission denied compilation terminated. uc@uc-HP-Pavilion-dv6-Notebook-PC:~/Desktop$ sudo gcc stream_server.c -o streamserver stream_server.c: In function 'quit': stream_server.c:174:5: warning: format not a string literal and no format arguments [-Wformat-security] stream_server.c:177:5: warning: format not a string literal and no format arguments [-Wformat-security] /tmp/ccVnjC7y.o: In function `cvDecRefData': stream_server.c:(.text+0xa9a): undefined reference to `cvFree_' stream_server.c:(.text+0xb22): undefined reference to `cvFree_' /tmp/ccVnjC7y.o: In function `cvGetRow': stream_server.c:(.text+0xc39): undefined reference to `cvGetRows' /tmp/ccVnjC7y.o: In function `cvGetCol': 

你遇到的第一个问题是,你显然安装了一些没有正确权限的文件。 既然看起来你可以使用sudo ,你可能想要修复文件的权限:

 sudo chmod a+r /usr/include/highgui.h 

(类似于您没有读取权限的其他文件)。

另一个问题表明你有你的代码编译但不能链接。 这很像是因为你完全错过了图书馆的名字,或者你错误的位置:确保你使用-lhighgui -lcvaux -lcxcore (这是我从文档中收集到的;我自己没有使用这个库) 你提供的任何翻译单元之后 (例如,在stream_server.c之后;这看起来像一个C文件,意味着一个错误的语言标记)。