寫makefile時候的cc和gcc

2022-03-15 17:42:30 字數 2080 閱讀 6062

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。

**: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。

寫演算法題的時候怎麼寫注釋

比較好的寫注釋方式 先寫出大部分注釋,再開始寫演算法 如果你採用的就是這種方式,那麼恭喜你,你已經學會了,可以完全不看這篇文章,因為下面都是陳述這種方式能帶來的好處以及用其他方式的缺點,如果你採用的不是這種注釋方式,那麼建議你瀏覽一下這篇文章,說不定會提公升你的編碼效率 一般在看到演算法題都會先在腦...

寫演算法題的時候怎麼寫注釋

注釋是乙個程式設計師必須要具有的良好程式設計習慣。將自己的思想通過注釋先整理出來,再用 去體現。比較好的寫注釋方式 先寫出大部分注釋,再開始寫演算法 如果你採用的就是這種方式,那麼恭喜你,你已經學會了,可以完全不看這篇文章,因為下面都是陳述這種方式能帶來的好處以及用其他方式的缺點,如果你採用的不是這...

常用的C C 工程Makefile模板

在linux下做開發難免要接觸makefile,整個專案的構建都依賴於它。100個developer有100種makefile的寫法,在乙個較大的專案中,各種各樣的makefile無論在開發 後期維護還是整個系統的持續整合都是乙個負擔。有幸參與重構乙個遺留系統的makefile,以下是一些心得和乙個...