痛苦的版本对齐(2) 和时间的相关性

为什么有些环境,之前好好的,过一段时间后不能用了?

虽然不能说是绝对的原因,很大一部分是因为临时文件等引起的。

【问题回顾】 

1、改变了工具链

再回到近期 cygwin + cross toolchain 对 u-boot 版本的环境再搭建。

春节前,尝试使用Sourcery G++ Lite 2009q1-203 工具链(Mentor Graphics收购了),进行编译构建。

由于Sourcery G++ Lite 本身是基于 windows直接工作的(minGW机制),所以和 cygwin配置是需要特殊设定。

特殊之处就是 路径的表示

对于windows/dos路径为 d:\cygwin\bin\

对于cygwin路径为  /cygdrive/d/cygwin/bin

 cygwin的差别,在于cygdrive的路径映射(cygdrive相当于将windows下“我的电脑”的映射路径)

 其他就和linux和windows的差别一样,主要是 \ 和 /,另外就是linux下没有 :(冒号)。

 为了解决该问题,Sourcery G++ Lite需要配置环境变量 CYGPATH:export CYGPATH=c:/cygwin/bin/cygpath (根据实际cygwin路径配置)

2、可以正常使用(这并非全部真实的)

 配置了 CYGPATH后,就可以正常运行了,一切正常。

3、春节后,无法工作了。

告警错误如下:

.depend:9: *** multiple target patterns.  Stop

 

【问题找到了,还未完全解决】

 找到错误提示的.depend文件,看到如下部分信息:

  /u-boot-1.1.6/u-boot-1.1.6/include/asm/ptrace.h \
  /u-boot-1.1.6/u-boot-1.1.6/include/asm/proc/ptrace.h \
  d:/cygwin/arm-2009q1/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/include/stdarg.h \

由于 出现了 冒号,导致工具链无法工作,因为:是make的target标记信息。
而之前能够运行,是在工具链切换前,之前的相近工具链刚编译过,正确的.depend的文件已经建立好了,编译时直接用正确的了。

之后不行了,是过了较久,make重新生成该部分信息。

 

【问题还会跟踪,但经验也要收敛】

版本对齐要求中,有多加了一项,清理临时文件。

posted @ 2014-02-08 23:52  yvivid  阅读(507)  评论(0编辑  收藏  举报