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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

gcc/g++基本命令简介

發(fā)布時間:2023/12/2 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 gcc/g++基本命令简介 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
gcc & g++現(xiàn)在是gnu中最主要和最流行的c & c++編譯器 。
g++是c++的命令,以.cpp為主,對于c語言后綴名一般為.c。這時候命令換做gcc即可。其實是無關(guān)緊要的。
其實編譯器是根據(jù)gcc還是g++來確定是按照C標(biāo)準(zhǔn)還是C++標(biāo)準(zhǔn)編譯鏈接。


下面以Test.cpp為例:

命令: g++ Test.cpp
功能:生成默認(rèn)為a.exe的文件,這個過程包含了編譯和鏈接。
再說下-o命令,-o命令表示輸出的意思,gcc/g++命令是非常靈活的,你不指定輸出的文件名的時候默認(rèn)生成的是.exe文件。
你要輸出Test.exe的話可以用:g++ -o Test.exe Test.cpp。-o命令是輸出的意思,這樣就輸出了Test.exe。

gcc/g++在執(zhí)行編譯工作的時候,總共需要以下幾步:

[cpp] view plaincopyprint?
  • <span?style="font-family:'Microsoft?YaHei';font-size:16px;">????/*************************?
  • ????????Test.cpp?
  • ????*************************/??
  • ????#include?<IOSTREAM>??
  • ??
  • ????static?int?t?=?1;??
  • ????#define?T?9??
  • ??
  • ????using?namespace?std;??
  • ??
  • ????typedef?int?Status;??
  • ??
  • ????int?main()??
  • ????{??
  • ????????Status?i?=?1;??
  • ????????cout?<<?T?*?i?<<?endl;?//Test?Cout??
  • ????????return?0;??
  • ????}</span><span?style="font-family:?'Microsoft?YaHei';?font-size:?18px;?">??
  • </span>??




  • 1.預(yù)處理,生成.i的文件[預(yù)處理器cpp]

    命令:g++ -E Test.cpp > Test.i?

    功能:輸出預(yù)處理后的文件,linux下以.i為后綴名。只激活預(yù)處理,這個不生成文件,你需要把它重定向到一個輸出文件里 。這一步主要做了這些事情:宏的替換,還有注釋的消除,還有找到相關(guān)的庫文件。用編輯器打開Test.i會發(fā)現(xiàn)有很多很多代碼,你只需要看最后部分就會發(fā)現(xiàn),預(yù)處理做了宏的替換,還有注釋的消除,可以理解為無關(guān)代碼的清除。下面是Test.i文件的最后部分,可以看見宏的替換和注釋的消除。

    [cpp] view plaincopyprint?
  • <span?style="font-family:'Microsoft?YaHei';font-size:16px;">#?5?"Test.cpp"?2??
  • ??
  • static?int?t?=?1;??
  • ??
  • using?namespace?std;??
  • ??
  • typedef?int?Status;??
  • ??
  • int?main()??
  • {??
  • ?Status?i?=?1;??
  • ?cout?<<?9?*?i?<<?endl;??
  • ?return?0;??
  • }</span>??


  • 2.將預(yù)處理后的文件不轉(zhuǎn)換成匯編語言,生成文件.s[編譯器egcs]

    命令:g++ -S Test.cpp
    功能:會生成Test.s文件,.s文件表示是匯編文件,用編輯器打開就都是匯編指令。

    3.有匯編變?yōu)槟繕?biāo)代碼(機器代碼)生成.o的文件[匯編器as]

    命令:g++ -c Test.cpp?
    功能:.o是GCC生成的目標(biāo)文件,除非你是做編譯器和連接器調(diào)試開發(fā)的,否則打開這種.o沒有任何意義。二進制機器碼一般人也讀不了。

    4.連接目標(biāo)代碼,生成可執(zhí)行程序[鏈接器ld]

    命令:g++ Test.o -L F:\vs2008\VC\include\iostream
    功能:將.o文件與所需的庫文件鏈接整合形成.exe文件,這就是可執(zhí)行文件。-L 表示鏈接,這里我后面寫的是絕對路徑,相對各人電腦不同


    在上面各個步驟中你可以用-o命令輸出你自己想要的各種名字。比如最后一個命令,用下面的輸出Test.exe
    你可以g++ Test.o -o Test.exe -L F:\vs2008\VC\include\iostream


    寫了上面的就希望能夠理解整個源文件是怎么變成可執(zhí)行文件的,gcc/g++確實是很給力的啊····(*^__^*)

    總結(jié)

    以上是生活随笔為你收集整理的gcc/g++基本命令简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。