寫makefile時候的cc和gcc


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。

 
 
轉自: http://www.cnblogs.com/zhouyinhui/archive/2010/02/01/1661078.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM