error: storage size of ‘timeout’ isn’t known struct timeval timeout

1  源代碼

   #include<stdio.h>

#include<unistd.h>

//#include<sys/time.h>
#include<string.h>

#define __need_time_t

//#define __need_timespec

#include <time.h>
main()
{

  struct timeval timeout;
//  struct timespec elaped;
  ("dong\n");
  int i=10;
  printf("%d",i);
}
2 編譯

kaola@kaola:~/dongwork$ gcc -std=c99 testtime.c
testtime.c:13:1: warning: return type defaults to ‘int’ [enabled by default]
 main()
 
testtime.c: In function ‘main’:
testtime.c:16:18: error: storage size of ‘timeout’ isn’t known
   struct timeval timeout;      

3 解決方法

sudo find / -name "time.h"


usr/lib/syslinux/com32/include/sys/time.h
/usr/lib/syslinux/com32/include/time.h
/usr/src/linux-headers-3.16.0-77/include/uapi/linux/time.h
/usr/src/linux-headers-3.16.0-77/include/linux/time.h
/usr/src/linux-headers-3.16.0-77/arch/hexagon/include/asm/time.h
/usr/src/linux-headers-3.16.0-77/arch/arm/mach-iop13xx/include/mach/time.h
/usr/src/linux-headers-3.16.0-77/arch/arm/mach-iop33x/include/mach/time.h
/usr/src/linux-headers-3.16.0-77/arch/arm/mach-davinci/include/mach/time.h
/usr/src/linux-headers-3.16.0-77/arch/arm/mach-iop32x/include/mach/time.h
/usr/src/linux-headers-3.16.0-77/arch/arm/plat-orion/include/plat/time.h
/usr/src/linux-headers-3.16.0-77/arch/arm/include/asm/mach/time.h
/usr/src/linux-headers-3.16.0-77/arch/blackfin/include/asm/time.h
/usr/src/linux-headers-3.16.0-77/arch/powerpc/include/asm/time.h
/usr/src/linux-headers-3.16.0-77/arch/x86/include/asm/time.h
/usr/src/linux-headers-3.16.0-77/arch/mips/include/asm/time.h
/usr/src/linux-headers-3.16.0-77-generic/include/config/netfilter/xt/match/time.h
/usr/src/linux-headers-3.16.0-77-generic/include/config/rtc/drv/hid/sensor/time.h
/usr/src/linux-headers-3.16.0-77-generic/include/config/printk/time.h
/usr/src/linux-headers-3.16.0-30-generic/include/config/netfilter/xt/match/time.h
/usr/src/linux-headers-3.16.0-30-generic/include/config/rtc/drv/hid/sensor/time.h
/usr/src/linux-headers-3.16.0-30-generic/include/config/printk/time.h
/usr/src/linux-headers-3.16.0-30/include/uapi/linux/time.h
/usr/src/linux-headers-3.16.0-30/include/linux/time.h
/usr/src/linux-headers-3.16.0-30/arch/hexagon/include/asm/time.h
/usr/src/linux-headers-3.16.0-30/arch/arm/mach-iop13xx/include/mach/time.h
/usr/src/linux-headers-3.16.0-30/arch/arm/mach-iop33x/include/mach/time.h
/usr/src/linux-headers-3.16.0-30/arch/arm/mach-davinci/include/mach/time.h
/usr/src/linux-headers-3.16.0-30/arch/arm/mach-iop32x/include/mach/time.h
/usr/src/linux-headers-3.16.0-30/arch/arm/plat-orion/include/plat/time.h
/usr/src/linux-headers-3.16.0-30/arch/arm/include/asm/mach/time.h
/usr/src/linux-headers-3.16.0-30/arch/blackfin/include/asm/time.h
/usr/src/linux-headers-3.16.0-30/arch/powerpc/include/asm/time.h
/usr/src/linux-headers-3.16.0-30/arch/x86/include/asm/time.h
/usr/src/linux-headers-3.16.0-30/arch/mips/include/asm/time.h
/usr/include/x86_64-linux-gnu/sys/time.h
/usr/include/x86_64-linux-gnu/bits/time.h
/usr/include/linux/time.h
/usr/include/time.h
/home/kaola/dongtool/m4-1.4.17/lib/sys/time.h
/home/kaola/dongtool/m4-1.4.17/lib/time.h
/home/kaola/dongwork/kaola-player-android-linux/extra/ffmpeg/libavutil/time.h
/home/kaola/dongwork/kaola-player-android-linux/Linux/include/libavutil/time.h
kaola@kaola:~/dongwork$ vim /usr/include/linux/time.h



3.1  分別查看


           

usr/include/linux/time.h
/usr/include/time.h

3.1.1 發現加上std= c99編譯/usr/include/time.h用的是這個頭文件,

#define __need_time_t
#define __need_timespec
只能有struct timespec 結構體的聲明。
3.1.2 usr/include/linux/time.h
中有  struct timeval timeout;
//  struct timespec elaped;兩者的生明



發佈了28 篇原創文章 · 獲贊 4 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章