日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux下GCC与G++的区别和联系

發布時間:2025/6/15 linux 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux下GCC与G++的区别和联系 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文鏈接:https://www.linuxidc.com/Linux/2008-03/11943.htm

GCC and g++分別是gnu的c & c++編譯器 GCC/g++在執行編譯工作的時候,總共需要4步

1.預處理,生成.i的文件[預處理器cpp]
2.將預處理后的文件不轉換成匯編語言,生成文件.s[編譯器egcs]
3.有匯編變為目標代碼(機器代碼)生成.o的文件[匯編器as]
4.連接目標代碼,生成可執行程序[鏈接器ld]

1 :兩者都可以編譯C和C++代碼,但是請注意:
(1).后綴為.c的,GCC把它當作是C程序,而g++當作是c++程序;后綴為.cpp的,兩者都會認為是c++程序,注意,雖然c++是c的超集,但是兩者對語法的要求是有區別的。C++的語法規則更加嚴謹一些。

(2).編譯階段,g++會調用GCC,對于c++代碼,兩者是等價的,但是因為GCC命令不能自動和C++程序使用的庫聯接,所以通常用g++來完成鏈接,為了統一起見,干脆編譯/鏈接統統用g++了,這就給人一種錯覺,好像cpp程序只能用g++似的。

2 :對于__cplusplus宏,實際上,這個宏只是標志著編譯器將會把代碼按C還是C++語法來解釋,如上所述,如果后綴為.c,并且采用GCC編譯器,則該宏就是未定義的,否則,就是已定義。

3 :編譯可以用GCC/g++,而鏈接可以用g++或者GCC -lstdc++。因為GCC命令不能自動和C++程序使用的庫聯接,所以通常使用g++來完成聯接。但在編譯階段,g++會自動調用GCC,二者等價。




總結

以上是生活随笔為你收集整理的Linux下GCC与G++的区别和联系的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。