久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

干貨!gcc和g 編譯器有什么區(qū)別,?看完這篇就明白了

 好漢勃士 2023-02-06 發(fā)布于廣東

GCC,,以前用于“ GNU C編譯器 ”,已經(jīng)不斷發(fā)展,,支持多種語言,,如C(gcc),C ++(g++),,Objective-C,,Objective-C ++,Java(gcj),,F(xiàn)ortran(gfortran),,Ada(gnat),Go(gccgo),,OpenMP,,Cilk Plus和OpenAcc。它現(xiàn)在被稱為“ GNU編譯器集合 ”,。

下面我們來快速看看c/c++中常用的gcc和g++都有哪些不同點,。

1.gcc是GCC中的c編譯器,g++是GCC中的c++編譯器,。

就本質(zhì)而言,,gcc和g++并不是編譯器,也不是編譯器的集合,,它們只是一種驅(qū)動器,,根據(jù)參數(shù)中要編譯的文件的類型,調(diào)用對應(yīng)的GUN編譯器而已,。所以,,更準確的說法是:gcc調(diào)用了C compiler,,而g++調(diào)用了C++ compiler。

2. 對于后綴為.c的文件,,gcc當成c文件處理,而g++當成c++處理,;

對于后綴為.cpp的文件,,兩者都當成.cpp文件處理。

1. 對于 *.c和*.cpp文件,,gcc分別當做c和cpp文件編譯(c和cpp的語法強度是不一樣的)

2. 對于 *.c和*.cpp文件,,g++則統(tǒng)一當做cpp文件編譯

文章圖片1

gcc和g++都可以正常編譯*.c文件

3. 在編譯階段,g++會自動鏈接STL標準庫,;而gcc不會自動鏈接STL,,必須加-lstdc++編譯參數(shù)。

在用gcc編譯c++文件時,,為了能夠使用STL,,需要加參數(shù) –lstdc++ ,但這并不代表 gcc –lstdc++ 和 g++等價,,它們的區(qū)別不僅僅是這個,。

文章圖片2

gcc編譯的c++代碼中使用了STL標準庫時,必須加-lstdc++編譯參數(shù)

4. gcc在編譯c文件時,,可用的預(yù)定義宏是比較少的,。

gcc在編譯cpp文件時/g++在編譯c文件和cpp文件時(這時候gcc和g++調(diào)用的都是cpp文件的編譯器),會加入一些額外的宏,,這些宏如下:

#define __GXX_WEAK__ 1

#define __cplusplus 1

#define __DEPRECATED 1

#define __GNUG__ 4

#define __EXCEPTIONS 1

#define __private_extern__ extern

雖然gcc和g++有一些區(qū)別,,但是對于咱們正常的編碼來說,這兩個編譯器用哪個都可以,,但是對于特殊的編譯參數(shù),,還是需要參考編譯器開發(fā)指南手冊查看細節(jié)再使用的。


演示代碼:

test_c.c

#include <stdio.h>int main(){printf('Hello, World! \n');return 0;}

test_c++.cpp

#include <iostream>using namespace std;int main(){cout << 'Hello World'<<endl;return 0;}

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多