expected specifier-qualifier-list before ‘uint16_t’
来源:互联网 发布:网络推手kim 编辑:程序博客网 时间:2024/06/10 22:51
转载请注明出处: http://blog.csdn.net/zhangyang0402/archive/2010/07/22/5754132.aspx
编写一个PF_KEY的测试程序,但一编译就出现了问题。
源代码如下:
- #include<stdio.h>
- #include<sys/socket.h>
- #include<linux/pfkeyv2.h>
- int main(void)
- {
- int s;
- s=socket(PF_KEY, SOCK_RAW, PF_KEY_V2);
- if ( s == -1 )
- {
- perror("create PF_KEY socket failed./n");
- return -1;
- }
- return 0;
- }
# gcc test.c -o test
In file included from test.c:3:
/usr/include/linux/pfkeyv2.h:15: error: expected specifier-qualifier-list before ‘uint8_t’
/usr/include/linux/pfkeyv2.h:27: error: expected specifier-qualifier-list before ‘uint16_t’
/usr/include/linux/pfkeyv2.h:33: error: expected specifier-qualifier-list before ‘uint16_t’
/usr/include/linux/pfkeyv2.h:45: error: expected specifier-qualifier-list before ‘uint16_t’
/usr/include/linux/pfkeyv2.h:55: error: expected specifier-qualifier-list before ‘uint16_t’
/usr/include/linux/pfkeyv2.h:64: error: expected specifier-qualifier-list before ‘uint16_t’
/usr/include/linux/pfkeyv2.h:72: error: expected specifier-qualifier-list before ‘uint16_t’
/usr/include/linux/pfkeyv2.h:81: error: expected specifier-qualifier-list before ‘uint16_t’
/usr/include/linux/pfkeyv2.h:97: error: expected specifier-qualifier-list before ‘uint16_t’
/usr/include/linux/pfkeyv2.h:110: error: expected specifier-qualifier-list before ‘uint8_t’
/usr/include/linux/pfkeyv2.h:130: error: expected specifier-qualifier-list before ‘uint16_t’
/usr/include/linux/pfkeyv2.h:142: error: expected specifier-qualifier-list before ‘uint8_t’
/usr/include/linux/pfkeyv2.h:151: error: expected specifier-qualifier-list before ‘uint16_t’
/usr/include/linux/pfkeyv2.h:160: error: expected specifier-qualifier-list before ‘uint16_t’
/usr/include/linux/pfkeyv2.h:167: error: expected specifier-qualifier-list before ‘uint16_t’
/usr/include/linux/pfkeyv2.h:178: error: expected specifier-qualifier-list before ‘uint16_t’
/usr/include/linux/pfkeyv2.h:189: error: expected specifier-qualifier-list before ‘uint16_t’
/usr/include/linux/pfkeyv2.h:203: error: expected specifier-qualifier-list before ‘uint16_t’
/usr/include/linux/pfkeyv2.h:212: error: expected specifier-qualifier-list before ‘uint16_t’
/usr/include/linux/pfkeyv2.h:221: error: expected specifier-qualifier-list before ‘uint16_t’
很是奇怪,可能linux/pfkeyv2.h中的uint8, uint16出了问题。grep了一下,发现linux/types.h 和stdint.h中都对uint8_t, uint16_t进行了定义.
linux/types.h
typedef __u8 uint8_t;
typedef __u16 uint16_t;
typedef __u32 uint32_t;
这里只看uint8_t
__u8是在asm/types.h中定义的
typedef unsigned char __u8;
stdint.h
typedef unsigned char uint8_t;
typedef unsigned short int uint16_t;
#ifndef __uint32_t_defined
typedef unsigned int uint32_t;
# define __uint32_t_defined
#endif
测试结果
#include linux/types.h,依然出现错误,这个是显然的。linux/pfkeyv2.h中include的就是linux/types.h
#include stdint.h,就没问题了。
对于这一点,实在有点搞不清楚。有清楚的同仁麻烦告诉一下。
- expected specifier-qualifier-list before ‘uint16_t’
- Expected specifier-qualifier-list before
- expected specifier-qualifier-list before
- expected specifier-qualifier-list before
- 错误: expected specifier-qualifier-list before ‘GTypeInstance’
- error: expected specifier-qualifier-list before ‘uint8_t’
- expected specifier-qualifier-list before sockaddr_in
- expected specifier-qualifier-list before 'size_t'
- expected specifier-qualifier-list before 'size_t'
- 编译错误:expected specifier-qualifier-list before
- error: expected specifier-qualifier-list before xxx (a structure )
- 报错expected specifier-qualifier-list before ‘uint32_t‘
- 编译出现问题error: expected specifier-qualifier-list before ‘(’ token
- error: expected specifier-qualifier-list before xxx (a structure )
- 【错误总结】expected specifier-qualifier-list before sth
- 【错误总结】expected specifier-qualifier-list before sth
- /usr/include/linux/if_ppp.h:117: error: expected specifier-qualifier-list before 'aligned_u64' 解决方式
- include/linux/if_ppp.h:135: error: expected specifier-qualifier-list before 'aligned_u64'
- FetchType与FetchMode的区别
- Matlab中的数据预处理-归一化(mapminmax)与标准化(mapstd)
- SCI、EI及影响因子
- mysql中模糊查询的四种用法介绍
- p2p技术在物联网上(wifi模块)的应用
- expected specifier-qualifier-list before ‘uint16_t’
- 数据注解与验证
- [C++]MySQL数据库操作实例
- 改良程序的11技巧
- [C++基础] 深入C++的new
- Unity一个智能火力点,根据攻击范围自动旋转攻击
- Android性能优化典范
- iOS单例模式的优缺点
- 设置应用内系统默认语言