以前自己在安装交叉编译工具链时经常会看到arm_v5t-le-gcc和arm_v5t-le-g++等,以为gcc就是一个C语言的编译器,后来发现自己肤浅了,相信也有很多刚接触LINUX系统也会有和为一样的误解,所以在这里总结一下。
- GCC不只是C语言的编译器,最初的创造者开发的目的的确只针对C编译,但随着各种编译器的产生,现在的GCC是一个编译器的套装,gcc命令也只是调用各种编译器的快捷方式。
- (C99/C89到底与GCC有啥关系?我也这么发问过,没事,知识无非是先知和后知的问题)首先,C99和C89指的是C语言规范,无规矩不成方圆嘛,由于是89年提出,故称为C89,国际列为标准后经过几次修改,最后GCC就支持了C89规范。至于C99也就是在C89基础上不断修正完善后GCC又支持了C99而已。由于GCC目前还没有完全支持C99规范,所以默认情况GCC使用C89规范,想用C99那就自己加-std=c99参数吧。
C89与C99标准到底有什么区别?自己也不全知晓,但在使用VS2008进行开发过程中,常会在for循环语句内部声明变量,如
for(int i=0;i<5;i++){
...
}
这就是C99规范中的一个规定。至于其他的规范区别还是自己谷歌去吧。推荐一个链接,对于了解一下两个规范的区别够用了。http://www.360doc.com/content/10/0324/18/2633_20101093.shtml