types.h:136: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__dev_t’

时间:2021-11-04 16:12:24
[root@localhost xc]# make World
In file included from /Cross/target/local/mipsel-linux/include/stdio.h:36,
                 from ./config/util/printver.c:10:
/Cross/target/local/mipsel-linux/include/bits/types.h:127:3: error: #error 
In file included from /Cross/target/local/mipsel-linux/include/stdio.h:36,
                 from ./config/util/printver.c:10:
/Cross/target/local/mipsel-linux/include/bits/types.h:136: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__dev_t’
/Cross/target/local/mipsel-linux/include/bits/types.h:140: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__ino64_t’
/Cross/target/local/mipsel-linux/include/bits/types.h:142: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__nlink_t’
/Cross/target/local/mipsel-linux/include/bits/types.h:144: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__off64_t’
/Cross/target/local/mipsel-linux/include/bits/types.h:149: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__rlim64_t’
/Cross/target/local/mipsel-linux/include/bits/types.h:172: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__blkcnt64_t’
/Cross/target/local/mipsel-linux/include/bits/types.h:176: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__fsblkcnt64_t’
/Cross/target/local/mipsel-linux/include/bits/types.h:180: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__fsfilcnt64_t’
/Cross/target/local/mipsel-linux/include/bits/types.h:182: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__ssize_t’
/Cross/target/local/mipsel-linux/include/bits/types.h:186: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__loff_t’
/Cross/target/local/mipsel-linux/include/bits/types.h:191: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__intptr_t’
In file included from /Cross/target/local/mipsel-linux/include/libio.h:32,
                 from /Cross/target/local/mipsel-linux/include/stdio.h:72,
                 from ./config/util/printver.c:10:
/Cross/target/local/mipsel-linux/include/_G_config.h:33: error: expected specifier-qualifier-list before ‘__off64_t’
In file included from /Cross/target/local/mipsel-linux/include/stdio.h:72,
                 from ./config/util/printver.c:10:
/Cross/target/local/mipsel-linux/include/libio.h:312: error: expected specifier-qualifier-list before ‘__off64_t’
/Cross/target/local/mipsel-linux/include/libio.h:351: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__io_read_fn’
/Cross/target/local/mipsel-linux/include/libio.h:359: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__io_write_fn’
/Cross/target/local/mipsel-linux/include/libio.h:368: error: expected declaration specifiers or ‘...’ before ‘__off64_t’
/Cross/target/local/mipsel-linux/include/libio.h:467: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘_IO_padn’
/Cross/target/local/mipsel-linux/include/libio.h:470: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘_IO_seekoff’
/Cross/target/local/mipsel-linux/include/libio.h:471: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘_IO_seekpos’
In file included from /Cross/target/local/mipsel-linux/include/stdlib.h:416,
                 from ./config/util/printver.c:11:
/Cross/target/local/mipsel-linux/include/sys/types.h:46: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘loff_t’
/Cross/target/local/mipsel-linux/include/sys/types.h:62: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘dev_t’
/Cross/target/local/mipsel-linux/include/sys/types.h:77: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘nlink_t’
/Cross/target/local/mipsel-linux/include/sys/types.h:110: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ssize_t’
make: *** [World] Error 1

31 个解决方案

#1


请问编译XFree86时出现上面的头文件错误,是我引用的include文件有问题吗?还是跟我要编译的东西不匹配?应该怎么找到匹配的呢?谢谢了

#2


交叉编译?
http://www.dzkf.cn/html/qianrushixitong/2008/0401/3063.html

#3


是的,我是用编译好的mipsel-linux来编译出一个基于XFree86上的TinyX 但是编译的时候提示一些头文件的错误信息,这个跟我的交叉编译工具有关吗

#4



这个问题我也遇到过。。

很有可能是有的语句后面少了个“;”、、、、、

自己先检查一下、、

#5


這些是內嵌彙編時候的關鍵字,你的程序應該是內嵌了AT&T的彙編吧?但是貌似語法寫錯了

你能把/Cross/target/local/mipsel-linux/include/bits/types.h:136:這個文件從130行開始,貼大概五十行出

來看看嗎?

#6


好的,下面是 mipsel-linux/include/bits/types.h:136:這個文件從130行開始,貼大概五十行 的代码 
 
/* We want __extension__ before typedef's that use nonstandard base types
   such as `long long' in C89 mode.  */
#define __STD_TYPE __extension__ typedef


__STD_TYPE __DEV_T_TYPE __dev_t;        /* Type of device numbers.  */
__STD_TYPE __UID_T_TYPE __uid_t;        /* Type of user identifications.  */
__STD_TYPE __GID_T_TYPE __gid_t;        /* Type of group identifications.  */
__STD_TYPE __INO_T_TYPE __ino_t;        /* Type of file serial numbers.  */
__STD_TYPE __INO64_T_TYPE __ino64_t;    /* Type of file serial numbers (LFS).*/
__STD_TYPE __MODE_T_TYPE __mode_t;      /* Type of file attribute bitmasks.  */
__STD_TYPE __NLINK_T_TYPE __nlink_t;    /* Type of file link counts.  */
__STD_TYPE __OFF_T_TYPE __off_t;        /* Type of file sizes and offsets.  */
__STD_TYPE __OFF64_T_TYPE __off64_t;    /* Type of file sizes and offsets (LFS).  */
__STD_TYPE __PID_T_TYPE __pid_t;        /* Type of process identifications.  */
__STD_TYPE __FSID_T_TYPE __fsid_t;      /* Type of file system IDs.  */
__STD_TYPE __CLOCK_T_TYPE __clock_t;    /* Type of CPU usage counts.  */
__STD_TYPE __RLIM_T_TYPE __rlim_t;      /* Type for resource measurement.  */
__STD_TYPE __RLIM64_T_TYPE __rlim64_t;  /* Type for resource measurement (LFS).  */
__STD_TYPE __ID_T_TYPE __id_t;          /* General type for IDs.  */
__STD_TYPE __TIME_T_TYPE __time_t;      /* Seconds since the Epoch.  */
__STD_TYPE __USECONDS_T_TYPE __useconds_t; /* Count of microseconds.  */
__STD_TYPE __SUSECONDS_T_TYPE __suseconds_t; /* Signed count of microseconds.  */

__STD_TYPE __DADDR_T_TYPE __daddr_t;    /* The type of a disk address.  */
__STD_TYPE __SWBLK_T_TYPE __swblk_t;    /* Type of a swap block maybe?  */
__STD_TYPE __KEY_T_TYPE __key_t;        /* Type of an IPC key.  */

/* Clock ID used in clock and timer functions.  */
__STD_TYPE __CLOCKID_T_TYPE __clockid_t;

/* Timer ID returned by `timer_create'.  */
__STD_TYPE __TIMER_T_TYPE __timer_t;

/* Type to represent block size.  */
__STD_TYPE __BLKSIZE_T_TYPE __blksize_t;

/* Types from the Large File Support interface.  */

/* Type to count number of disk blocks.  */
__STD_TYPE __BLKCNT_T_TYPE __blkcnt_t;

#7


引用 6 楼 oldstorm 的回复:
好的,下面是 mipsel-linux/include/bits/types.h:136:這個文件從130行開始,貼大概五十行 的代码

/* We want __extension__ before typedef's that use nonstandard base types
such as `long long' in C89 mode.  */
#define __STD_TYPE __extension__ typedef


__STD_TYPE __DEV_T_TYPE __dev_t;        /* Type of device numbers.  */
__STD_TYPE __UID_T_TYPE __uid_t;        /* Type of user identifications.…

這是在定義一些C89不支持的非標準數據類型。首先定義了__STD_TYPE宏,這裡面有一個關鍵的問題,__extension__

這個是在哪裡定義的,樓主全域的搜索一下__extension__的定義吧,它的含義不清楚,導致了後面宏替換時typedef

的失敗

#8


恩 谢谢 fetag  终于明白错误的原因了

#9


顶一个

#10


m,m,

#11


怎么看回复亚,楼主。

#12


同样遇到这类问题,看啊看

#13


学习一下~~~~

#14


asdasdasdasdas

#15


同样遇到这类问题,看

#16


同样遇到这类问题

#17


该回复于2010-10-12 10:35:18被版主删除

#18


该回复于2010-10-19 10:31:19被版主删除

#19


回帖看看答案

#20


好 看上那款

#21


看答案

#22


看答案

#23


看答案

#24


看答案

#25


看答案

#26


怎么看答案?

#27


答案在哪里

#28


还是不明白  怎么解决的

#29


确实没有看明白

#30


看答案

#31


看答案。

#1


请问编译XFree86时出现上面的头文件错误,是我引用的include文件有问题吗?还是跟我要编译的东西不匹配?应该怎么找到匹配的呢?谢谢了

#2


交叉编译?
http://www.dzkf.cn/html/qianrushixitong/2008/0401/3063.html

#3


是的,我是用编译好的mipsel-linux来编译出一个基于XFree86上的TinyX 但是编译的时候提示一些头文件的错误信息,这个跟我的交叉编译工具有关吗

#4



这个问题我也遇到过。。

很有可能是有的语句后面少了个“;”、、、、、

自己先检查一下、、

#5


這些是內嵌彙編時候的關鍵字,你的程序應該是內嵌了AT&T的彙編吧?但是貌似語法寫錯了

你能把/Cross/target/local/mipsel-linux/include/bits/types.h:136:這個文件從130行開始,貼大概五十行出

來看看嗎?

#6


好的,下面是 mipsel-linux/include/bits/types.h:136:這個文件從130行開始,貼大概五十行 的代码 
 
/* We want __extension__ before typedef's that use nonstandard base types
   such as `long long' in C89 mode.  */
#define __STD_TYPE __extension__ typedef


__STD_TYPE __DEV_T_TYPE __dev_t;        /* Type of device numbers.  */
__STD_TYPE __UID_T_TYPE __uid_t;        /* Type of user identifications.  */
__STD_TYPE __GID_T_TYPE __gid_t;        /* Type of group identifications.  */
__STD_TYPE __INO_T_TYPE __ino_t;        /* Type of file serial numbers.  */
__STD_TYPE __INO64_T_TYPE __ino64_t;    /* Type of file serial numbers (LFS).*/
__STD_TYPE __MODE_T_TYPE __mode_t;      /* Type of file attribute bitmasks.  */
__STD_TYPE __NLINK_T_TYPE __nlink_t;    /* Type of file link counts.  */
__STD_TYPE __OFF_T_TYPE __off_t;        /* Type of file sizes and offsets.  */
__STD_TYPE __OFF64_T_TYPE __off64_t;    /* Type of file sizes and offsets (LFS).  */
__STD_TYPE __PID_T_TYPE __pid_t;        /* Type of process identifications.  */
__STD_TYPE __FSID_T_TYPE __fsid_t;      /* Type of file system IDs.  */
__STD_TYPE __CLOCK_T_TYPE __clock_t;    /* Type of CPU usage counts.  */
__STD_TYPE __RLIM_T_TYPE __rlim_t;      /* Type for resource measurement.  */
__STD_TYPE __RLIM64_T_TYPE __rlim64_t;  /* Type for resource measurement (LFS).  */
__STD_TYPE __ID_T_TYPE __id_t;          /* General type for IDs.  */
__STD_TYPE __TIME_T_TYPE __time_t;      /* Seconds since the Epoch.  */
__STD_TYPE __USECONDS_T_TYPE __useconds_t; /* Count of microseconds.  */
__STD_TYPE __SUSECONDS_T_TYPE __suseconds_t; /* Signed count of microseconds.  */

__STD_TYPE __DADDR_T_TYPE __daddr_t;    /* The type of a disk address.  */
__STD_TYPE __SWBLK_T_TYPE __swblk_t;    /* Type of a swap block maybe?  */
__STD_TYPE __KEY_T_TYPE __key_t;        /* Type of an IPC key.  */

/* Clock ID used in clock and timer functions.  */
__STD_TYPE __CLOCKID_T_TYPE __clockid_t;

/* Timer ID returned by `timer_create'.  */
__STD_TYPE __TIMER_T_TYPE __timer_t;

/* Type to represent block size.  */
__STD_TYPE __BLKSIZE_T_TYPE __blksize_t;

/* Types from the Large File Support interface.  */

/* Type to count number of disk blocks.  */
__STD_TYPE __BLKCNT_T_TYPE __blkcnt_t;

#7


引用 6 楼 oldstorm 的回复:
好的,下面是 mipsel-linux/include/bits/types.h:136:這個文件從130行開始,貼大概五十行 的代码

/* We want __extension__ before typedef's that use nonstandard base types
such as `long long' in C89 mode.  */
#define __STD_TYPE __extension__ typedef


__STD_TYPE __DEV_T_TYPE __dev_t;        /* Type of device numbers.  */
__STD_TYPE __UID_T_TYPE __uid_t;        /* Type of user identifications.…

這是在定義一些C89不支持的非標準數據類型。首先定義了__STD_TYPE宏,這裡面有一個關鍵的問題,__extension__

這個是在哪裡定義的,樓主全域的搜索一下__extension__的定義吧,它的含義不清楚,導致了後面宏替換時typedef

的失敗

#8


恩 谢谢 fetag  终于明白错误的原因了

#9


顶一个

#10


m,m,

#11


怎么看回复亚,楼主。

#12


同样遇到这类问题,看啊看

#13


学习一下~~~~

#14


asdasdasdasdas

#15


同样遇到这类问题,看

#16


同样遇到这类问题

#17


该回复于2010-10-12 10:35:18被版主删除

#18


该回复于2010-10-19 10:31:19被版主删除

#19


回帖看看答案

#20


好 看上那款

#21


看答案

#22


看答案

#23


看答案

#24


看答案

#25


看答案

#26


怎么看答案?

#27


答案在哪里

#28


还是不明白  怎么解决的

#29


确实没有看明白

#30


看答案

#31


看答案。