免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1567 | 回复: 0
打印 上一主题 下一主题

/usr/src/linux/inlcude/linux 与 /usr/include/linux [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-06-10 23:30 |只看该作者 |倒序浏览
1./usr/src/linux/include/linux是给编译内核用的
  /usr/include/linux是给编译应用程序用的
  /usr/include/linux应该是到/usr/src/linux/include/linux的连接
  /usr/include/asm应该是到/usr/src/linux/include/asm的连接
  /usr/src/linux/include/asm连接到当前目录的asm-i386
  以前一直是这样的。在早期讲Kernel编译的文章中经常提醒用户自己做好以下工作:
   ln -s /usr/src/linux/include/linux /usr/include/linux
   ln -s /usr/src/linux/include/asm /usr/include/asm
  后来的发布一般都已经做好了。

2.但是在RH 7.1中改了。
  /usr/src/include/linux和/usr/src/include/asm都是真实目录了。
在最新的发布中,似乎更推荐两者分开。

绝大多数“普通”程序不需要内核头文件,事实上如果直接引用它们会出错。这些程序应该引用那些编译glibc所用的头文件,它们位于系统的/usr/include/linux和/usr/include/asm目录下。
redhat的/usr/include属于glibc,不是给内核用的,虽然也包含asm和linux目录,但是简化过的,编译内核模块偶尔能成功,幸运而已,建议编译内核时加-nostdinc参数,以防止使用了错误的目录。
3.实例
在redhat9.0(linux-2.4.20-8)环境下编译了一个和netfilter相关的内
核程序程序,当我用gcc -O -c -I/usr/src/linux/include
examplemod.c编译时,就没有问题,但我用gcc -O -c -I/usr/include
examplemod.c编译时就不能通过,出现如下的错物欲告警:
/usr/include/linux/netfilter_ipv4.h:53: `INT_MIN' undeclared here (not in a function)
/usr/include/linux/netfilter_ipv4.h:53: enumerator value for `NF_IP_PRI_FIRST' not integer constant
/usr/include/linux/netfilter_ipv4.h:59: `INT_MAX' undeclared here (not in a function)
/usr/include/linux/netfilter_ipv4.h:59: enumerator value for `NF_IP_PRI_LAST' not integer constant
test1.c:21: warning: `struct net_device' declared inside parameter list
test1.c:21: warning: its scope is only this definition or declaration, which is probably not what you want
test1.c:21: warning: `struct sk_buff' declared inside parameter list
test1.c: In function `init_module':
test1.c:37: invalid use of undefined type `struct nf_hook_ops'
test1.c:38: invalid use of undefined type `struct nf_hook_ops'
test1.c:39: invalid use of undefined type `struct nf_hook_ops'
test1.c:40: invalid use of undefined type `struct nf_hook_ops'
/usr/include/linux/byteorder/swab.h: At top level:
test1.c:14: storage size of `nfho' isn't known
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/63316/showart_1961394.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP