警告:函数“ timerisset”的隐式声明

时间:2018-10-14 06:37:10

标签: c centos

从较早的CentOS服务器迁移到具有相同GCC版本的较新的服务器会导致在旧服务器上未发生的编译C代码的错误:

interp.c: In function `update_userec':
interp.c:1100: warning: implicit declaration of function `timerisset'
interp.c:1101: warning: implicit declaration of function `timercmp'
interp.c:1101: error: syntax error before '<' token

代码:

if ( !timerisset(&userec->min_time)
||    timercmp(time_used, &userec->min_time, <) )
{

此文件确实位于文件顶部:

#include <time.h>

gcc版本:

Reading specs from /usr/lib/gcc/x86_64-redhat-linux/3.4.6/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-languages=c,c++,f77 --disable-libgcj --host=x86_64-redhat-linux
Thread model: posix
gcc version 3.4.6 20060404 (Red Hat 3.4.6-19.el6)

手册页中确实提到:

  

glibc的功能测试宏要求(请参阅   feature_test_macros(7)):

   All functions shown above:
       Since glibc 2.19:
           _DEFAULT_SOURCE
       Glibc 2.19 and earlier:
           _BSD_SOURCE

但是在_DEFAULT_SOURCE行上方定义_BSD_SOURCEinclude并不能解决任何问题。

0 个答案:

没有答案