现在的位置: 首页 > 综合 > 正文

in文件 X Autoconf X 视角高度

2013年10月22日 ⁄ 综合 ⁄ 共 947字 ⁄ 字号 评论关闭

       在研究一个成熟的开源项目的时候,除了源代码以外,往往会发现一些其它的东西:Docs、配置文件等等,有时让人“丈二金刚摸不着头脑”——根本不知道有些文件是干嘛的。在最开始,我是冲着一个项目的代码去的,渐渐的,“只见树木不见森林”的感觉越来越强烈,甚至产生放弃继续学习的念头。

       其实,茶余饭后,将这些“神秘文件”拿着搜索搜索、研究研究,也能起到启发思维、提高宏观认识的效果。C++Java项目的不同之处,往往是底层做起、项目文件非常多(它可不提供包之类的机制呢);当这些文件、类,产生依赖关系的时候,一个人很容易被弄糊涂了。

       FishGUI/X11/目录下,是一些.in.am文件,而且似乎是linux下的格式(用UE打开)。随便看一个.in文件,里面全是一些晦涩的宏定义——倒有点像批处理文件呢!在网上搜索.in,没什么结果;仔细看看文件内容,发现一个AC_CHECK_LIB,有点类似函数、宏功能,于是搜索一下,果然:它们是Autoconf产生的文件,GNU相关[1];至于这个AC_CHECK_*,就是用来检查lib文件是否存在的吧!对于复杂的项目管理,文件结构、配置文件的位置,都会影响编译运行的成败。

       就这么一小会功夫,我发现自己对项目的认识又增加了几点:

1,  这些莫名的文件的用途,心中的疑虑减少了[2]

2,  Autoconf这个工具,我现在不再一无所知了。

3,  项目的编写环境,可能是在linux下进行的;可能有很多的配置,我现在还没有留意到。

       有时候,摆脱一些“傻瓜式”的思维,不妨将目光放得稍微深入一些、分散一些。代码确实代表着真相,但是干什么事情都得有个头绪、有个高度才行。



[2] 至少,我明白删除它们,不会对项目的编译产生什么副作用。在后继编译的工作中,如果发现问题,我不会到X11这个文件夹中翻找源代码。

抱歉!评论已关闭.