Linux 下 的 cc 和 gcc

                             Linux 下 的 cc 和 gcc

                                周银辉

 

在Linux下一会看到cc,另一会又看到gcc,感觉又点混乱的样子。它们是同一个东西么,有啥区别呢

 

一分为二地看:

 

首先,如果讨论范围在Unix和Linux之间,那么cc和gcc不是同一个东西。cc来自于Unix的c语言编译器,是 c compiler 的缩写。gcc来自Linux世界,是GNU compiler collection 的缩写,注意这是一个编译器集合,不仅仅是c或c++。

 

其次, 如果讨论范围仅限于Linux,我们可以认为它们是一样的,在Linux下调用cc时,其实际上并不指向unix的cc编译器,而是指向了gcc,也就是说cc是gcc的一个链接(快捷方式),看看下面的终端输出就明白了:

zhouyinhui @ zhouyinhui - laptop: / etc / alternatives $  which cc
/ usr / bin / cc
zhouyinhui
@ zhouyinhui - laptop: / etc / alternatives $  ls  - al  / usr / bin / cc
lrwxrwxrwx 
1  root root  20   2010 - 01 - 20   23 : 56   / usr / bin / cc  ->   / etc / alternatives / cc
zhouyinhui
@ zhouyinhui - laptop: / etc / alternatives $  ls  - al  / etc / alternatives / cc
lrwxrwxrwx 
1  root root  12   2010 - 01 - 20   23 : 56   / etc / alternatives / cc  ->   / usr / bin / gcc

 

 

为什么会这样,很简单,为了兼容性:

cc是Unix下的,是收费的,可不向Linux那样可以那来随便用,所以Linux下是没有cc的

然后,问题来了,如果我的c/c++项目是在Unix下编写的,在写makefile文件时自然地用了cc,当将其放到Linux下这无法make了,必须将其中的cc全部修改成gcc。这太麻烦了哈,所以,Linux这想了这么一个方便的解决方案:不修改makefile,继续使用cc,这个cc是个“冒牌货”,它实际指向gcc。

-----------

另外,关于 g++ 和 gcc, 看这里 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux中更新gcc命令的步骤如下: 1. 首先,为了不覆盖原来的gcc命令,需要备份原来的相关内容。可以执行以下命令: ``` mv /usr/bin/gcc /usr/bin/gcc485 mv /usr/bin/g++ /usr/bin/g++485 mv /usr/bin/c++ /usr/bin/c++485 mv /usr/bin/cc /usr/bin/cc485 mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.bak ``` 这样可以将原来的gcc命令备份到相应的目录下。 2. 安装新版本的gcc后,新的gcc命令位于/usr/local/bin目录下。为了让系统能够找到新的gcc命令,需要创建软链接。可以执行以下命令: ``` ln -s /usr/local/bin/gcc /usr/bin/gcc ln -s /usr/local/bin/g++ /usr/bin/g++ ln -s /usr/local/bin/c++ /usr/bin/c++ ln -s /usr/local/bin/gcc /usr/bin/cc ln -s /usr/local/lib64/libstdc++.so.6.0.28 /usr/lib64/libstdc++.so.6 ``` 这样可以创建软链接,将新版本的gcc命令与系统路径关联起来。 3. 如果需要在特定目录下使用新版本的gcc,可以使用cd命令切换到相应的目录,然后执行解压命令。例如,如果要将gmp文件解压到目录gcc-10.1.0,可以执行以下命令: ``` cd /opt2/test_other/debug_test/ tar -jvxf gmp-6.1.0.tar.bz2 --directory=/usr/local/gcc-10.1.0/ ``` 这样可以将gmp文件解压到指定目录。 请注意,更新gcc命令可能需要root权限或管理员权限。在执行任何系统命令之前,请确保您具有足够的权限。 #### 引用[.reference_title] - *1* *2* *3* [linux升级gcc版本详细教程](https://blog.csdn.net/weixin_43354152/article/details/129247408)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值