国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

gcc和g++

2019-11-11 07:03:27
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
gcc & g++現(xiàn)在是gnu中最主要和最流行的c & c++編譯器 。g++是c++的命令,以.cpp為主,對(duì)于c語(yǔ)言后綴名一般為.c。這時(shí)候命令換做gcc即可。其實(shí)是無(wú)關(guān)緊要的。其實(shí)編譯器是根據(jù)gcc還是g++來(lái)確定是按照C標(biāo)準(zhǔn)還是C++標(biāo)準(zhǔn)編譯鏈接。下面以Test.cpp為例:命令: g++ Test.cpp功能:生成默認(rèn)為a.exe的文件,這個(gè)過(guò)程包含了編譯和鏈接。再說(shuō)下-o命令,-o命令表示輸出的意思,gcc/g++命令是非常靈活的,你不指定輸出的文件名的時(shí)候默認(rèn)生成的是.exe文件。你要輸出Test.exe的話可以用:g++ -o Test.exe Test.cpp。-o命令是輸出的意思,這樣就輸出了Test.exe。gcc/g++在執(zhí)行編譯工作的時(shí)候,總共需要以下幾步:/*       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;      }1.預(yù)處理,生成.i的文件[預(yù)處理器cpp]命令:g++ -E Test.cpp > Test.i 功能:輸出預(yù)處理后的文件,linux下以.i為后綴名。只激活預(yù)處理,這個(gè)不生成文件,你需要把它重定向到一個(gè)輸出文件里 。這一步主要做了這些事情:宏的替換,還有注釋的消除,還有找到相關(guān)的庫(kù)文件。用編輯器打開(kāi)Test.i會(huì)發(fā)現(xiàn)有很多很多代碼,你只需要看最后部分就會(huì)發(fā)現(xiàn),預(yù)處理做了宏的替換,還有注釋的消除,可以理解為無(wú)關(guān)代碼的清除。下面是Test.i文件的最后部分,可以看見(jiàn)宏的替換和注釋的消除。<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)換成匯編語(yǔ)言,生成文件.s[編譯器egcs]命令:g++ -S Test.cpp功能:會(huì)生成Test.s文件,.s文件表示是匯編文件,用編輯器打開(kāi)就都是匯編指令。3.有匯編變?yōu)槟繕?biāo)代碼(機(jī)器代碼)生成.o的文件[匯編器as]命令:g++ -c Test.cpp 功能:.o是GCC生成的目標(biāo)文件,除非你是做編譯器和連接器調(diào)試開(kāi)發(fā)的,否則打開(kāi)這種.o沒(méi)有任何意義。二進(jìn)制機(jī)器碼一般人也讀不了。4.連接目標(biāo)代碼,生成可執(zhí)行程序[鏈接器ld]命令:g++ Test.o -L F:/vs2008/VC/include/iostream功能:將.o文件與所需的庫(kù)文件鏈接整合形成.exe文件,這就是可執(zhí)行文件。-L 表示鏈接,這里我后面寫(xiě)的是絕對(duì)路徑,相對(duì)各人電腦不同在上面各個(gè)步驟中你可以用-o命令輸出你自己想要的各種名字。比如最后一個(gè)命令,用下面的輸出Test.exe你可以g++ Test.o -o Test.exe -L F:/vs2008/VC/include/iostream寫(xiě)了上面的就希望能夠理解整個(gè)源文件是怎么變成可執(zhí)行文件的,gcc/g++確實(shí)是很給力的啊····(*^__^*)
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 利津县| 沁阳市| 台北县| 绥滨县| 公安县| 瑞昌市| 和龙市| 台前县| 灵山县| 蒙山县| 门头沟区| 文化| 澎湖县| 青龙| 新兴县| 子长县| 新闻| 安庆市| 吉木萨尔县| 虹口区| 昌江| 鸡东县| 黔江区| 石狮市| 吉隆县| 农安县| 古丈县| 绥阳县| 伊通| 平山县| 达拉特旗| 平阳县| 金湖县| 巴里| 都江堰市| 白银市| 大城县| 江西省| 梁山县| 宣威市| 牟定县|