我找到了一家为ARM,MIPS提供基于GCC的工具链的公司,但我不知道它们与vanilla GCC的区别是什么,当然,他们带来了其他软件如Eclipse,但是当我只看GCC时Binutils,它们是不同的还是一样的?
预编译的工具链(如Code Sourcery,MontaVista,Wind River等提供的工具链)和源自源代码的工具链之间的一个很大区别就是方便.从头开始构建工具链,特别是用于交叉编译目的,是繁琐的,可能是一个彻头彻尾的痛苦.此外,最新版本的glibc(或uClibc),gcc和binutils并不总是兼容的,因为它们是独立开发的.有一些开源工具可以简化这个过程(比如crosstool-NG),但拥有经过验证的针对某个平台进行了优化的工具链可以节省大量时间和麻烦.在新项目开始时尤其如此.当事情变得棘手时,它也有助于获得技术支持.当然......你必须在大部分时间里付钱.
话虽这么说,编译自己的工具链很可能会为您省钱,并可以提供更多的灵活性.据我所知,MontaVista在其最新的工具链版本中不包括对旧平台的支持.例如,如果您购买了MontaVista Pro 4.X并且它包含了一个带有gcc 3.3.X的工具链,这就是您最有可能在项目生命周期中停留的工具链.使用gcc 4.X升级到工具链很可能不是一种选择.
希望有所帮助.