首页 > 技术知识 > 正文

  说道交叉编译工具,大家都知道是用来交叉编译程序用的,但是大家有没有在意过,海思的交叉编译工具和君正的交叉编译工具其实是有区别的。   海思的交叉编译工具是用Vxxx来区别uclibc和glibc的,比如说arm-hisiv100nptl-linux-是uclibc的编译工具arm-hisiv200-linux-是glibc的编译工具,而且这两种编译工具都是有实体的。   再来看君正的编译工具,如下图: 君正交叉编译工具及Makefile讲解   大家应该看出来了,君正的交叉编译工具,glibc的是有实体的,而uclibc的是一个连接,全部连接到最下面的uclibc-toolchain-wrapper上了,不知道大家知不知道为什么是这样的,其实我们观察一下君正里面sample代码的Makefile就能看出一些东西来了。如图: 君正交叉编译工具及Makefile讲解1   Makefile的第一行就是区分你要编译的是uclibc还是glibc,但是不管你选择的是uclibc还是glibc,它使用的交叉编译工具都是不变的,大家发现了吗,都是gun的交叉编译工具,这是为什么呢,其实答案就在下面,13行到15行,如果你选择的是uclibc的库,则它在后面会跟上-muclibc这个编译参数,也就是说你编译uclibc的程序也可以使用glibc的编译工具,只要后面跟上参数即可。   这是不是意味着uclibc的交叉编译工具就用不到了呢,一般情况下,是可以不使用uclibc的交叉编译工具了,但是如果要用,也是可以使用的,后面就不需要跟上参数了,由于uclibc支持的库比较少,所以很多东西被阉割掉了,所以大家看到的uclibc的编译工具都是连接到uclibc-toolchain-wrapper上的,以后大家自己写Makefile也可以参考这个去自己编写。

猜你喜欢