您好,登錄后才能下訂單哦!
很多人使用了很久的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來編譯)。
-------------------------------查看過程:
以下使用的環境是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程序中沒有換行,所以這里輸出自然沒換行,但這就是對了。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。