从名字上看,老的unix系统
的CC程序叫做C Compiler。但GCC这个名字按GNU的说法叫做Gnu Compiler
Collection。因为gcc包含很多编译器(C, C++, Objective-C, Ada, Fortran,and
Java)。所以它们是不一样的,一个是一个古老的C编译器,一个是编译器的Gnu的编译器的集合(Gcc里的C编译器比CC强大太多了,所以你没必要用
CC)。当你调用gcc时不一定是调用的C/C++编译器,是gcc根据文件扩展名自动识别并调用对应的编译器,具体可查阅$man gcc。
你是下载不到CC的,原因是:CC来自于昂贵的Unix系统,CC是商业软件,要想用你需要打电话,写订单,而不是打开你的Browser去download。
linux
下的cc是gcc的符号链接。可以通过$ls –l
/usr/bin/cc来简单察看.而编译时看到的控制台输出CC则是一个指向gcc的变量,该变量是make程序的内建变量,就算你在Makefile
中没有CC=
,该变量也会存在,并默认指向gcc。cc的符号链接和变量存在的意义在于源码的移植性,可以方便的用GCC来编译老的用cc编译的unix软件,甚至连
Makefile都不要改。而且也便于linux程序在unix下编译。
近
几年的一个新情况是越来越多的unix用户,据我所知像solaris,bsd用户也不太使用CC了,人们都一定要装一个gcc,用它来编译C/C++程
序。原因显而易见,gcc足够强大,健壮。支持估计目前为止只有它支持的ISO c/c++ 新特性。当然你最好不要使用night版本的gcc。
分享到:
相关推荐
概括 这是TI CC2640R2启动板的示例项目,旨在使用标准工具进行构建。 不需要Code Composer Studio(aka CCS)来构建,刷新或调试该项目,即可以通过命令行来完成。 依存关系 具有Cortex-M3支持的arm-none-eabi-gcc ...
概括 gcc(GNU Compiler Collection,GNU编译器套件)是由GNU开发的编程语言译器。GNU编译器套件包括C、C++、 Objective-C、 Fortran、Java、Ada和Go语言前端,也包括了这些语言的库。(如libstdc++,libgcj等) ...
export CC=loongarch64-linux-gnu-gcc export CXX=loongarch64-linux-gnu-g++ export AR=loongarch64-linux-gnu-ar export RANLIB=loongarch64-linux-gnu-ranlib ``` 4. **构建基础工具**:按照LFS书籍的顺序...
- 静态模式规则的语法及其与隐含规则的区别。 **4.13 双冒号规则** - 双冒号规则的定义及其与普通规则的区别。 **4.14 自动产生依赖** - 如何自动生成依赖关系。 #### 五、规则的命令 - 规则中的命令是用来...
- 不同的UNIX平台通常有特定的编译器,例如Sun Solaris上的`sun CC`和`cc`,Alpha上的`cxx`和`cc`,HP的`aCC`,以及IBM的`xlC`。 7. **Solaris下的进程信息获取**: - 在Solaris系统中,可以通过读取`/proc`目录...
CC = arm-linux-gcc CFLAGS = -Wall -g LDFLAGS = all: hello hello: hello.c $(CC) $(CFLAGS) -o $@ $$(LDFLAGS) clean: rm -f *.o hello ``` - **编译应用程序:** 在命令行中输入`make`即可自动编译程序...
GDB的主要功能可以概括为以下几点: 1. 启动并运行程序。GDB允许用户按照自定义的要求来启动和运行程序,你可以自定义程序运行的参数,甚至是在特定条件下启动。 2. 设置断点。用户可以在指定的代码行或条件表达式处...
- 例如,`%.o: %.c`规则可以与`cc`的隐含规则一起使用。 **3.13 双冒号规则:** - 双冒号规则允许定义多个独立的规则。 - 例如,一个目标可以有多个独立的构建路径。 **3.14 自动产生依赖:** - make可以通过...