随笔-0  评论-0  文章-40  trackbacks-0
今天弄lfs时候遇到了一个小插曲,记录一下:
LFS缓慢但是不停滞的进展中,目前已经将工具链调整完毕,中间因为误删除了include-fixed文件导致tcl测试套件编译无法通过。不过通过这个插曲,倒是也了解到了#include_next 这样一种语法
#include_next 是这样定义的:
如果编译器顺序搜索 A B C D E 目录来查找头文件,如果位于目录A中的文件 使用#include_next "type.h",则编译器会从B目录中开始查找该文件,同理如果在B中遇到#include_next "type.h" 则会从 C 目录中开始查找
ToolChain使用这个技术,来包含不同的limits.h,这个文件,gcc自己带一个,glibc自己带一个, linux kernel header 自己也会带一个,一般在glibc的limits.h中会检查,如果发现当前项目没有包含gcc自己的limits.h,则会使用#include_next来包含limits.h
这样gcc会在下一个头文件目录中搜索gcc自己的limits.h
posted on 2011-06-24 01:23 无毁湖光 阅读(437) 评论(0)  编辑 收藏 引用