當前位置:
首頁 > 知識 > 輕鬆理解C語言相關的編譯器gcc和g加加

輕鬆理解C語言相關的編譯器gcc和g加加

很多人使用了很久的C語言,但是對gcc,gcc-c++,g++這些還是比較模糊。試著在百度上找一下,到處都是同一篇文章在轉來轉去,裡面也寫的比較抽象。我這裡先總結一下本人的理解然後用試驗來描述一下。

先總結的來看:

1:gcc可以用來編譯C語言和C++:但是gcc只能鏈接C庫,不能鏈接C++庫;

2:g++可以鏈接C++庫,但是它是通過調用gcc來編譯,因此:它也可以編譯C和C++,但它能編譯的條件是要先存在gcc。

所以通常:如果只有C語言程序,就只要安裝gcc即可搞定,因為它既可以編譯C,也可以鏈接C庫,所以可以最終生成二進位程序。

如果有C++程序,那麼gcc不能鏈接C++庫,所以還需要加個g++來鏈接C++庫。

結論:

只有C程序,就只要gcc(它不能鏈接C++庫,所以最終生成不了二進位可執行程序)

如果有C++程序,就要gcc和g++一起(因為g++要調用gcc來編譯)。

想要一起學習C++的可以加裙三四零六五一六八七,裙內有各種資料滿足大家,歡迎加裙

-------------------------------查看過程:

以下使用的環境是Centos 6.5 32位:

測試時間:2017年6月2日 16:40

gcc-c++可以看成是g++.exe(windows下的理解方式)的包名,也就是gcc-c++內含g++.exe;

查看安裝了的:

或者(yum 安裝的是rpm包,也可以用rpm包的查看方式):

現在寫個C++程序:

使用vim編輯器:

查看一下:

因為gcc鏈接不了C++庫,所以一通的undefined:

也沒有結果生成:

改用g++來弄:

可見:g++就可以了(編譯的時候g++會調用gcc來編譯【gcc可以編譯c和c++】,鏈接的時候用g++來連接)。

運行,看到列印東西了:

現在弄個C語言:

使用vim編輯器:

保存後查看源代碼:

一開始只有:

使用gcc編譯(它可以編譯C並鏈接C庫)

可見,成功生成了a.out

執行a.out

因為C程序中沒有換行,所以這裡輸出自然沒換行,但這就是對了。

想要一起學習C++的可以加裙三四零六五一六八七,裙內有各種資料滿足大家,歡迎加裙


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 C加加 的精彩文章:

多年後再回頭看C語言對未來職業的重大意義
C語言中轉義字元那些事兒
C語言學習之基本字符集
C語言初學者不可錯過的教程
C語言練習——小白必看

TAG:C加加 |

您可能感興趣

自製Monkey編程語言編譯器:增加數組操作API和Mapsh數據類型
解讀gcc和g++編譯器分別對c與c++文件影響
Julia官宣:為機器學習構建一種語言和編譯器
GameMaker 偏門理論:關於反編譯器
棄用微軟 C+編譯器,Win版Chrome 改用 Clang
Windows 版本的 Chrome 停用微軟的編譯器 改用 Clang
TVM:Deep Learning模型的優化編譯器
升級Azure、開源Q#編譯器和模擬器,一文看盡微軟Build大會
C sharp 翻身?微軟重寫開源的 C sharp 編譯器!
TVM: Deep Learning模型的優化編譯器(強烈推薦, 附踩坑記錄)
Renesas Synergy增加對IAR Systems先進編譯器技術的支持,進一步鞏固該平台在IOT領域的性能優勢
一統所有AI晶元:Facebook揭秘深度學習編譯器Glow
業界 | 一統所有AI晶元:Facebook揭秘深度學習編譯器Glow
Valve為AMD GPU開發新的Mesa著色器編譯器,編譯速度更快,遊戲幀數有所提高
Dropbox創建了一種新的Python編譯器:mypyc
助力 Android 抗衡 iOS,華為發布方舟編譯器!
Unity編譯器測試框架
我是如何提升 Rust 編譯器的速度?
從GPUTurbo和方舟編譯器可看出,華為開發操作系統很容易
藉助 Valve 的新編譯器,Linux 遊戲在 AMD GPU 中獲得了性能提升