每次我尝试编译示例程序时都会找不到cv.h,找不到highgui.c。我尝试去opencv中的includes文件夹并对usr / includes做了一个sudo拷贝*并没有多大帮助:我得到以下输出有人能告诉我我做错了吗?
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':
答案 0 :(得分:3)
您遇到的第一个问题是您显然安装了一些没有正确权限的文件。由于您似乎可以使用sudo
,因此您可能需要修复文件的权限:
sudo chmod a+r /usr/include/highgui.h
(类似于您没有读取权限的其他文件)。
另一个问题表明您已编译代码但未链接。这是因为您要么完全错过了库名,要么将它放在错误的位置:请确保使用-lhighgui -lcvaux -lcxcore
(这是我从文档中收集的内容;我自己没有使用过这个库)< strong> 您提供的任何翻译单元后(例如,在stream_server.c
之后;这看起来很像C文件,暗示操作中的语言标记错误。)