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

首頁(yè) > 編程 > C++ > 正文

c++程序的運(yùn)行

2019-11-11 07:41:27
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文轉(zhuǎn)自:http://c.biancheng.net/cpp/biancheng/view/3253.html

C++ 和C語(yǔ)言類似,也要經(jīng)過(guò)編譯和鏈接后才能運(yùn)行。在《C語(yǔ)言入門教程》中我們講到了 C-Free、VC 6.0、VS、GCC、Xcode 等常見(jiàn) IDE 或編譯器,它們除了可以運(yùn)行C語(yǔ)言程序,還可以運(yùn)行 C++ 程序,步驟是類似的,讀者需要留意的是 C++ 源文件的后綴,以及 GCC 中的g++命令。

下圖是 C/C++ 代碼生成可執(zhí)行文件的過(guò)程:

C++源文件的后綴

C語(yǔ)言源文件的后綴非常統(tǒng)一,在不同的編譯器下都是.c。C++源文件的后綴則有些混亂,不同的編譯器支持不同的后綴,下表是一個(gè)簡(jiǎn)單的匯總:
編譯器Microsoft Visual C++GCC(GNU C++)Borland C++UNIX
后綴cpp、cxx、cccpp、cxx、cc、c++、CcppC、cc、cxx
UNIX 是昂貴的商業(yè)操作系統(tǒng),初學(xué)者幾乎用不到;Microsoft Visual C++ 是微軟的 C/C++ 編譯器,VC 6.0、VS 都使用該編譯器。我推薦使用.cpp作為 C++ 源文件的后綴,這樣更加通用和規(guī)范。

g++ 命令

有了C語(yǔ)言開(kāi)發(fā)經(jīng)驗(yàn),在 VC/VS、C-Free、Xcode 等常見(jiàn) IDE 下編譯 C++ 程序易如反掌,只要把源文件的后綴設(shè)置為.cpp即可,相信各位讀者都能夠毫無(wú)障礙地駕馭。本節(jié)我們重點(diǎn)介紹 linux GCC 的使用。在C語(yǔ)言中,我們使用gcc命令來(lái)編譯和鏈接C程序。例如編譯單個(gè)源文件:

gcc main.c

編譯多個(gè)源文件:

gcc main.c module.c

編譯C++程序時(shí),gcc命令也可以使用,不過(guò)要增加-lstdc++選項(xiàng),否則會(huì)發(fā)生鏈接錯(cuò)誤。例如編譯單個(gè)源文件:

gcc main.cpp -lstdc++

編譯多個(gè)源文件:

gcc main.cpp module.cpp -lstdc++

gcc命令在鏈接時(shí)默認(rèn)使用C的庫(kù),只有添加了-lstdc++選項(xiàng)才會(huì)使用 C++ 的庫(kù)。不過(guò) GCC 中還有一個(gè)g++命令,它專門用來(lái)編譯 C++ 程序,廣大 C++ 開(kāi)發(fā)人員也都使用這個(gè)命令。g++命令和gcc命令的用法如出一轍,例如編譯單個(gè)源文件:

g++ main.cpp

編譯多個(gè)源文件:

g++ main.cpp module.cpp

使用-o選項(xiàng)可以指定可執(zhí)行文件的名稱:

g++ main.cpp -o demo./demo

要想理解g++命令,我們得從 GCC 的歷史談起。GCC 是由 GUN 組織開(kāi)發(fā)的,最初只支持C語(yǔ)言,是一個(gè)單純的C語(yǔ)言編譯器,后來(lái) GUN 組織傾注了更多的精力,使得 GCC 越發(fā)強(qiáng)大,增加了對(duì) C++、Objective-C、Fortran、java 等其他語(yǔ)言的支持,此時(shí)的 GCC 就成了一個(gè)編譯器套件(套裝),是所有編譯器的總稱。在這個(gè)過(guò)程中,gcc命令也做了相應(yīng)地調(diào)整,它不再僅僅支持C語(yǔ)言,而是默認(rèn)支持C語(yǔ)言,增加參數(shù)后也可以支持其他的語(yǔ)言。也就是說(shuō),gcc是一個(gè)通用命令,它會(huì)根據(jù)不同的參數(shù)調(diào)用不同的編譯器或鏈接器。但是讓用戶指定參數(shù)是一種不明智的行為,不但增加了學(xué)習(xí)成本,還使得操作更加復(fù)雜,所以后來(lái) GCC 又針對(duì)不同的語(yǔ)言推出了不同的命令,例如g++命令用來(lái)編譯 C++,gcj命令用來(lái)編譯 Java,gccgo命令用來(lái)編譯Go語(yǔ)言。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 格尔木市| 清水县| 安龙县| 聂荣县| 宁波市| 团风县| 扶沟县| 杭锦旗| 鹰潭市| 利川市| 米易县| 巴林右旗| 太原市| 普兰店市| 余干县| 华池县| 平谷区| 东乡县| 寿宁县| 苍梧县| 永修县| 丰台区| 通海县| 沈阳市| 嘉峪关市| 铜梁县| 武功县| 调兵山市| 渑池县| 嘉峪关市| 斗六市| 台中县| 石林| 汾阳市| 辛集市| 安塞县| 台安县| 台东市| 柏乡县| 大竹县| 依安县|