C 警告:内置函数的不兼容隐式声明';lrint';
我想在下面的Linux机器上编译一个opencv程序:C 警告:内置函数的不兼容隐式声明';lrint';,c,opencv,C,Opencv,我想在下面的Linux机器上编译一个opencv程序: sav@machine:/shared/sav/test$ uname -a Linux machine 2.6.32-24-generic #43-Ubuntu SMP Thu Sep 16 14:58:24 UTC 2010 x86_64 GNU/Linux 我的gcc命令如下所示: gcc -I/shared/sav/opt/include -L/shared/sav/opt/lib -lopencv_core -lopencv_h
sav@machine:/shared/sav/test$ uname -a
Linux machine 2.6.32-24-generic #43-Ubuntu SMP Thu Sep 16 14:58:24 UTC 2010 x86_64 GNU/Linux
我的gcc命令如下所示:
gcc -I/shared/sav/opt/include -L/shared/sav/opt/lib -lopencv_core -lopencv_highgui -lopencv_imgproc -lm imagefilter.c -o imagefilter
运行程序后,我收到以下警告:
In file included from /shared/sav/opt/include/opencv2/core/core_c.h:47,
from /shared/sav/opt/include/opencv/cv.h:63,
from imagefilter.c:1:
/shared/sav/opt/include/opencv2/core/types_c.h: In function 'cvRound':
/shared/sav/opt/include/opencv2/core/types_c.h:327: warning: incompatible implicit declaration of built-in function 'lrint'
如何修复此警告?包括下面的头文件(math.h)。通常,此警告是因为不包括定义函数的头文件
#include <math.h>
#包括
math.h
-std=c99
选项与gcc
一起使用可解决此编译器问题gcc -I/shared/sav/opt/include -L/shared/sav/opt/lib -lopencv_core -lopencv_highgui -lopencv_imgproc -lm imagefilter.c -o imagefilter
到
有关使用Done的更多信息,请参阅此,但问题仍然存在。好的,现在警告消失了。您能否快速向我解释问题所在?在回答中提到的手册页中,
-std=c99
选项是必需的,因为只有在c99
之后才支持此glibc功能
gcc -std=c99 -I/shared/sav/opt/include -L/shared/sav/opt/lib -lopencv_core -lopencv_highgui -lopencv_imgproc -lm imagefilter.c -o imagefilter