青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-20  評論-0  文章-0  trackbacks-0

gcc和g++都是GNU(組織)的一個編譯器。

誤區一:gcc只能編譯c代碼,g++只能編譯c++代碼
兩者都可以,但是請注意:
1.后綴為.c的,gcc把它當作是C程序,而g++當作是c++程序;后綴為.cpp的,兩者都會認為是c++程序,注意,雖然c++是c的超集,但是兩者對語法的要求是有區別的。C++的語法規則更加嚴謹一些。
2.編譯階段,g++會調用gcc,對于c++代碼,兩者是等價的,但是因為gcc命令不能自動和C++程序使用的庫聯接,所以通常用g++來完成鏈接,為了統一起見,干脆編譯/鏈接統統用g++了,這就給人一種錯覺,好像cpp程序只能用g++似的。
 
誤區二:gcc不會定義__cplusplus宏,而g++會
實際上,這個宏只是標志著編譯器將會把代碼按C還是C++語法來解釋,如上所述,如果后綴為.c,并且采用gcc編譯器,則該宏就是未定義的,否則,就是已定義。
 
誤區三:編譯只能用gcc,鏈接只能用g++
嚴格來說,這句話不算錯誤,但是它混淆了概念,應該這樣說:編譯可以用gcc/g++,而鏈接可以用g++或者gcc -lstdc++。因為gcc命令不能自動和C++程序使用的庫聯接,所以通常使用g++來完成聯接。但在編譯階段,g++會自動調用gcc,二者等價。

gcc和g++的區別

我們在編譯c/c++代碼的時候,有人用gcc,有人用g++,于是各種說法都來了,譬如c代碼用gcc,而c++代碼用g++,或者說編譯用 gcc,鏈接用g++,一時也不知哪個說法正確,如果再遇上個extern "C",分歧就更多了,這里我想作個了結,畢竟知識的目的是令人更清醒,而不是更糊涂。
 
誤區一:gcc只能編譯c代碼,g++只能編譯c++代碼

兩者都可以,但是請注意:
1.后綴為.c的,gcc把它當作是C程序,而g++當作是c++程序;后綴為.cpp的,兩者都會認為是c++程序,注意,雖然c++是c的超集,但是兩者對語法的要求是有區別的,例如:
#include <stdio.h>
int main(int argc, char* argv[]) {
   if(argv == 0) return;
   printString(argv);
   return;
}
int printString(char* string) {
  sprintf(string, "This is a test.\n");
}
如果按照C的語法規則,OK,沒問題,但是,一旦把后綴改為cpp,立刻報三個錯:“printString未定義”;
“cannot convert `char**' to `char*”;
”return-statement with no value“;
分別對應前面紅色標注的部分??梢奀++的語法規則更加嚴謹一些。
2.編譯階段,g++會調用gcc,對于c++代碼,兩者是等價的,但是因為gcc命令不能自動和C++程序使用的庫聯接,所以通常用g++來完成鏈接,為了統一起見,干脆編譯/鏈接統統用g++了,這就給人一種錯覺,好像cpp程序只能用g++似的。
 
誤區二:gcc不會定義__cplusplus宏,而g++會

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

嚴格來說,這句話不算錯誤,但是它混淆了概念,應該這樣說:編譯可以用gcc/g++,而鏈接可以用g++或者gcc -lstdc++。因為gcc命令不能自動和C++程序使用的庫聯接,所以通常使用g++來完成聯接。但在編譯階段,g++會自動調用gcc,二者等價。
 
誤區四:extern "C"與gcc/g++有關系

實際上并無關系,無論是gcc還是g++,用extern "c"時,都是以C的命名方式來為symbol命名,否則,都以c++方式命名。試驗如下:
me.h
extern "C" void CppPrintf(void);
 
me.cpp:
#include <iostream>
#include "me.h"
using namespace std;
void CppPrintf(void)
{
     cout << "Hello\n";
}
 
test.cpp:
#include <stdlib.h>
#include <stdio.h>
#include "me.h"        
int main(void)
{
    CppPrintf();
    return 0;
}
 
1. 先給me.h加上extern "C",看用gcc和g++命名有什么不同

[root@root G++]# g++ -S me.cpp
[root@root G++]# less me.s
.globl _Z9CppPrintfv        //注意此函數的命名
        .type   CppPrintf, @function
[root@root GCC]# gcc -S me.cpp
[root@root GCC]# less me.s
.globl _Z9CppPrintfv        //注意此函數的命名
        .type   CppPrintf, @function
完全相同!
               
2. 去掉me.h中extern "C",看用gcc和g++命名有什么不同

[root@root GCC]# gcc -S me.cpp
[root@root GCC]# less me.s
.globl _Z9CppPrintfv        //注意此函數的命名
        .type   _Z9CppPrintfv, @function
[root@root G++]# g++ -S me.cpp
[root@root G++]# less me.s
.globl _Z9CppPrintfv        //注意此函數的命名
        .type   _Z9CppPrintfv, @function
完全相同!
posted on 2008-04-14 15:42 Magic 閱讀(356) 評論(0)  編輯 收藏 引用 所屬分類: C/C++
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美电影打屁股sp| 亚洲一区精彩视频| 久久精品国产96久久久香蕉| 亚洲一区二区欧美日韩| 欧美视频免费在线| 一本久道久久综合狠狠爱| 亚洲激情社区| 亚洲日本va在线观看| 蜜臀a∨国产成人精品| 伊人男人综合视频网| 麻豆久久婷婷| 久久久精品午夜少妇| 精品不卡在线| 亚洲国产精品国自产拍av秋霞| 免费成人av在线看| 99re这里只有精品6| 亚洲免费大片| 国产欧美日韩| 欧美成人免费全部| 欧美日韩亚洲网| 午夜精品视频在线观看| 亚洲激情小视频| 欧美日韩亚洲高清一区二区| 国产欧美一区二区精品性色| 亚洲免费一区二区| 久久精品国产99精品国产亚洲性色| 亚洲第一区在线观看| 亚洲麻豆国产自偷在线| 国产精品欧美日韩一区| 久久综合九色九九| 欧美午夜精品久久久久久久| 久久成人亚洲| 欧美巨乳波霸| 久久久久久久久久久一区| 欧美激情视频一区二区三区免费| 亚洲一区二区三区精品动漫| 久久成人综合视频| 亚洲少妇自拍| 久久久777| 欧美一区二区三区免费在线看 | 亚洲国产黄色片| 宅男噜噜噜66一区二区66| 永久免费视频成人| 亚洲性视频网站| 性做久久久久久久免费看| 亚洲国产一区在线| 欧美在线观看视频在线| 亚洲一区二区三区四区视频| 久久久国产一区二区| 亚洲欧美自拍偷拍| 欧美精品91| 老司机午夜精品视频在线观看| 国产精品swag| 亚洲肉体裸体xxxx137| 国产伊人精品| 性欧美超级视频| 亚洲一区二区黄色| 欧美国产一区二区| 久久综合九色综合欧美就去吻| 国产精品高潮呻吟久久| 性欧美xxxx大乳国产app| 欧美精品久久久久久久免费观看| 久久久久综合| 国模大胆一区二区三区| 亚洲一区二区三区精品在线| 亚洲视频大全| 欧美日韩亚洲视频| 99国产精品视频免费观看一公开| 海角社区69精品视频| 日韩亚洲欧美一区二区三区| 美女黄色成人网| 欧美激情第三页| 亚洲高清精品中出| 美女性感视频久久久| 亚洲高清在线播放| 亚洲精品日韩激情在线电影| 牛牛精品成人免费视频| 亚洲国产日韩欧美在线动漫| 99re国产精品| 欧美日韩一区二区在线观看视频| 亚洲欧洲日夜超级视频| 中文国产成人精品| 欧美日韩免费观看一区二区三区 | 宅男精品导航| 欧美日韩一卡二卡| 亚洲午夜av电影| 欧美一区二区日韩| 欧美日韩在线观看一区二区| 欧美国产亚洲视频| 国产女精品视频网站免费 | 亚洲视频精选在线| 免费视频一区二区三区在线观看| 亚洲欧美在线免费| 欧美日韩精品一区二区| 免费在线看一区| 国产一区日韩欧美| 免费在线国产精品| 免费永久网站黄欧美| 国内精品久久久久影院薰衣草| 欧美激情影音先锋| 欧美视频免费看| 亚洲国产老妈| 亚洲成在线观看| 久久久久一区二区三区| 亚洲欧洲精品一区二区三区波多野1战4| 亚洲欧美乱综合| 性视频1819p久久| 国产精品素人视频| 亚洲一区二区久久| 久久久91精品| 国产综合香蕉五月婷在线| 欧美福利视频一区| 牛牛影视久久网| 伊人男人综合视频网| 久久理论片午夜琪琪电影网| 久久久国产一区二区三区| 国产精品电影观看| 欧美激情国产高清| 欧美一进一出视频| 国产亚洲欧洲| 欧美专区在线观看一区| 久久综合给合| 亚洲精品一区二| 欧美精品啪啪| 欧美中文日韩| 亚洲国产婷婷香蕉久久久久久99| 91久久综合| 国产精品视频内| 久久三级福利| 欧美一级淫片aaaaaaa视频| 一区二区高清视频| 欧美韩国日本一区| 亚洲一二三区精品| 激情91久久| 欧美日韩精品欧美日韩精品一| 中日韩高清电影网| 久久亚洲综合| 国产精品一级在线| 欧美视频官网| 久久久久久欧美| 夜夜嗨av一区二区三区四季av| 欧美日韩中文在线| 欧美日韩999| 久久久91精品国产一区二区精品| 亚洲激情在线观看视频免费| 久久成人综合视频| 国产精品美女久久| 国产精品久久久久久福利一牛影视 | 亚洲午夜羞羞片| 欧美成ee人免费视频| 欧美中文字幕在线视频| 一本色道婷婷久久欧美| 欧美电影电视剧在线观看| 亚洲视频成人| 亚洲成人在线免费| 亚洲欧美国产制服动漫| 欧美日韩亚洲一区二区三区在线观看| 欧美夫妇交换俱乐部在线观看| 欧美一区二区三区在线观看| 日韩亚洲欧美一区二区三区| 欧美成人一二三| 久久久久五月天| 狠狠狠色丁香婷婷综合激情| 在线看片成人| 夜夜躁日日躁狠狠久久88av| 另类av一区二区| 久久久久久一区二区| 欧美福利一区二区三区| 久久久蜜桃一区二区人| 性亚洲最疯狂xxxx高清| av成人免费在线| 亚洲精品一区二区在线观看| 欧美丝袜一区二区三区| 国产精品欧美一区喷水 | 女同性一区二区三区人了人一| 午夜精品久久久久久久久久久| 一级日韩一区在线观看| 亚洲久色影视| 在线播放不卡| 亚洲看片一区| 日韩一二在线观看| 日韩网站免费观看| 亚洲人成人一区二区在线观看| 亚洲大胆视频| 亚洲欧美日韩视频二区| 亚洲女同精品视频| 欧美一区二区日韩一区二区| 久久成人精品无人区| 久久久久9999亚洲精品| 亚洲精品乱码久久久久久久久| 亚洲午夜视频在线| 午夜久久黄色| 久久久久免费观看| 久久久久欧美| 亚洲第一黄网| 午夜精品区一区二区三| 久久精品国产欧美亚洲人人爽| 久久香蕉国产线看观看av| 你懂的国产精品| 欧美日韩在线视频首页|