C 警告:内置函数的不兼容隐式声明';lrint';

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

我想在下面的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_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