LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1032|回复: 6

头文件的问题

[复制链接]
发表于 2006-3-23 19:50:53 | 显示全部楼层 |阅读模式
我在程序中使用了memset和memcpy函数,也包含了头文件<asm-arm/string.h>内核态的
可是还是提示错误:
[root@HUSTRAID WjcDes]# g++ -c WjcDes.cpp -I/usr/src/linux/include
/usr/src/linux/include/asm-arm/string.h:16: error: â__kernel_size_tâ has not been declared
/usr/src/linux/include/asm-arm/string.h:19: error: â__kernel_size_tâ has not been declared
/usr/src/linux/include/asm-arm/string.h:22: error: â__kernel_size_tâ has not been declared
/usr/src/linux/include/asm-arm/string.h:26: error: â__kernel_size_tâ has not been declared
/usr/src/linux/include/asm-arm/string.h:30: error: â__kernel_size_tâ has not been declared
[root@HUSTRAID WjcDes]#
我用#include <linux/string.h>时更是提示:
[root@HUSTRAID WjcDes]# g++ -c WjcDes.cpp -I/usr/src/linux/include
WjcDes.cpp: In function âvoid SetKey(const char*, int)â:
WjcDes.cpp:151: error: âmemsetâ was not declared in this scope
WjcDes.cpp:152: error: âmemcpyâ was not declared in this scope
内核态下的,我编译是用的命令是:
[root@HUSTRAID WjcDes]# g++ -c WjcDes.cpp -I/usr/src/linux/include
我的linux版本是:2.6.10  请问这是怎么回事,总不能让我去修改string.h文件吧,或者是要我在自己的程序中声明â__kernel_size_tâ ?
发表于 2006-3-23 21:03:42 | 显示全部楼层
去掉-I/... 参数
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-24 08:57:50 | 显示全部楼层
去掉-I...参数后就更是找不到了memset和memcpy的定义了
看来不能那样改了,我试过了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-24 08:57:57 | 显示全部楼层
Post by pupilzeng
去掉-I/... 参数
去掉-I...参数后就更是找不到了memset和memcpy的定义了
看来不能那样改了,我试过了
回复 支持 反对

使用道具 举报

发表于 2006-3-24 14:14:48 | 显示全部楼层
你是应用程序吗? 为什么要用内核代码的头文件?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-25 10:06:06 | 显示全部楼层
我想把这个编译成模块,好调用它所定义的函数,那又该怎么做?
回复 支持 反对

使用道具 举报

发表于 2006-3-26 16:54:11 | 显示全部楼层
如果要编译成模块,鉴于你的内核是 2.6 的,所以你的这种编译方法是不对的,你可以搜索一下论坛,有讲到怎样编译2.6内核模块的方法
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表