C++ 教程
如果您想要設(shè)置 C++ 語言環(huán)境,您需要確保電腦上有以下兩款可用的軟件,文本編輯器和 C++ 編譯器。
這將用于輸入您的程序。文本編輯器包括 Windows Notepad、OS Edit command、Brief、Epsilon、EMACS 和 vim/vi。
文本編輯器的名稱和版本在不同的操作系統(tǒng)上可能會(huì)有所不同。例如,Notepad 通常用于 Windows 操作系統(tǒng)上,vim/vi 可用于 Windows 和 Linux/UNIX 操作系統(tǒng)上。
通過編輯器創(chuàng)建的文件通常稱為源文件,源文件包含程序源代碼。C++ 程序的源文件通常使用擴(kuò)展名 .cpp、.cp 或 .c。
在開始編程之前,請(qǐng)確保您有一個(gè)文本編輯器,且有足夠的經(jīng)驗(yàn)來編寫一個(gè)計(jì)算機(jī)程序,然后把它保存在一個(gè)文件中,編譯并執(zhí)行它。
寫在源文件中的源代碼是人類可讀的源。它需要"編譯",轉(zhuǎn)為機(jī)器語言,這樣 CPU 可以按給定指令執(zhí)行程序。
C++ 編譯器用于把源代碼編譯成最終的可執(zhí)行程序。
大多數(shù)的 C++ 編譯器并不在乎源文件的擴(kuò)展名,但是如果您未指定擴(kuò)展名,則默認(rèn)使用 .cpp。
最常用的免費(fèi)可用的編譯器是 GNU 的 C/C++ 編譯器,如果您使用的是 HP 或 Solaris,則可以使用各自操作系統(tǒng)上的編譯器。
以下部分將指導(dǎo)您如何在不同的操作系統(tǒng)上安裝 GNU 的 C/C++ 編譯器。這里同時(shí)提到 C/C++,主要是因?yàn)?GNU 的 gcc 編譯器適合于 C 和 C++ 編程語言。
如果您使用的是 Linux 或 UNIX,請(qǐng)?jiān)诿钚惺褂孟旅娴拿顏頇z查您的系統(tǒng)上是否安裝了 GCC:
$ g++ -v
如果您的計(jì)算機(jī)上已經(jīng)安裝了 GNU 編譯器,則會(huì)顯示如下消息:
Using built-in specs. Target: i386-redhat-linux Configured with: ../configure --prefix=/usr ....... Thread model: posix gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)
如果未安裝 GCC,那么請(qǐng)按照 http://gcc.gnu.org/install/ 上的詳細(xì)說明安裝 GCC。
如果您使用的是 Mac OS X,最快捷的獲取 GCC 的方法是從蘋果的網(wǎng)站上下載 Xcode 開發(fā)環(huán)境,并按照安裝說明進(jìn)行安裝。一旦安裝上 Xcode,您就能使用 GNU 編譯器。
Xcode 目前可從 developer.apple.com/technologies/tools/ 上下載。
為了在 Windows 上安裝 GCC,您需要安裝 MinGW。為了安裝 MinGW,請(qǐng)?jiān)L問 MinGW 的主頁(yè) www.mingw.org,進(jìn)入 MinGW 下載頁(yè)面,下載最新版本的 MinGW 安裝程序,命名格式為 MinGW-<version>.exe。
當(dāng)安裝 MinGW 時(shí),您至少要安裝 gcc-core、gcc-g++、binutils 和 MinGW runtime,但是一般情況下都會(huì)安裝更多其他的項(xiàng)。
添加您安裝的 MinGW 的 bin 子目錄到您的 PATH 環(huán)境變量中,這樣您就可以在命令行中通過簡(jiǎn)單的名稱來指定這些工具。
當(dāng)完成安裝時(shí),您可以從 Windows 命令行上運(yùn)行 gcc、g++、ar、ranlib、dlltool 和其他一些 GNU 工具。
1、下載及安裝 Visual Studio Community 2015。
2、打開 Visual Studio Community
3、點(diǎn)擊 File -> New -> Project
4、左側(cè)列表選擇 Templates -> Visual C++ -> Win32 Console Application,并設(shè)置項(xiàng)目名為 MyFirstProgram。
5、點(diǎn)擊 OK。
6、在以下窗口中點(diǎn)擊 Next
7、在彈出的窗口中選擇 Empty project 選項(xiàng)后,點(diǎn)擊 Finish 按鈕:
8、右擊文件夾 Source File 并點(diǎn)擊 Add --> New Item... :
9、選擇 C++ File 然后設(shè)置文件名為 main.cpp,然后點(diǎn)擊 Add:
10、拷貝以下代碼到 main.cpp 中:
#include <iostream> int main() { std::cout << "Hello World!n"; return 0; }
界面如下所示:
11、點(diǎn)擊菜單上的 Debug -> Start Without Debugging (或按下 ctrl + F5) :
12、完成以上操作后,你可以看到以下輸出:
程序 g++ 是將 gcc 默認(rèn)語言設(shè)為 C++ 的一個(gè)特殊的版本,鏈接時(shí)它自動(dòng)使用 C++ 標(biāo)準(zhǔn)庫(kù)而不用 C 標(biāo)準(zhǔn)庫(kù)。通過遵循源碼的命名規(guī)范并指定對(duì)應(yīng)庫(kù)的名字,用 gcc 來編譯鏈接 C++ 程序是可行的,如下例所示:
$ gcc main.cpp -lstdc++ -o main
下面是一個(gè)保存在文件 helloworld.cpp 中一個(gè)簡(jiǎn)單的 C++ 程序的代碼:
#include <iostream> using namespace std; int main() { cout << "Hello, world!" << endl; return 0; }
最簡(jiǎn)單的編譯方式:
$ g++ helloworld.cpp
由于命令行中未指定可執(zhí)行程序的文件名,編譯器采用默認(rèn)的 a.out。程序可以這樣來運(yùn)行:
$ ./a.out Hello, world!
通常我們使用 -o 選項(xiàng)指定可執(zhí)行程序的文件名,以下實(shí)例生成一個(gè) helloworld 的可執(zhí)行文件:
$ g++ helloworld.cpp -o helloworld
執(zhí)行 helloworld:
$ ./helloworld Hello, world!
如果是多個(gè) C++ 代碼文件,如 json1.cpp、json2.cpp,編譯命令如下:
$ g++ json1.cpp json2.cpp -o json
生成一個(gè) json 可執(zhí)行文件。
g++ 有些系統(tǒng)默認(rèn)是使用 C++98,我們可以指定使用 C++11 來編譯 main.cpp 文件:
g++ -g -Wall -std=c++11 main.cpp
選項(xiàng) | 解釋 |
---|---|
-ansi | 只支持 ANSI 標(biāo)準(zhǔn)的 C 語法。這一選項(xiàng)將禁止 GNU C 的某些特色, 例如 asm 或 typeof 關(guān)鍵詞。 |
-c | 只編譯并生成目標(biāo)文件。 |
-DMACRO | 以字符串"1"定義 MACRO 宏。 |
-DMACRO=DEFN | 以字符串"DEFN"定義 MACRO 宏。 |
-E | 只運(yùn)行 C 預(yù)編譯器。 |
-g | 生成調(diào)試信息。GNU 調(diào)試器可利用該信息。 |
-IDIRECTORY | 指定額外的頭文件搜索路徑DIRECTORY。 |
-LDIRECTORY | 指定額外的函數(shù)庫(kù)搜索路徑DIRECTORY。 |
-lLIBRARY | 連接時(shí)搜索指定的函數(shù)庫(kù)LIBRARY。 |
-m486 | 針對(duì) 486 進(jìn)行代碼優(yōu)化。 |
-o | FILE 生成指定的輸出文件。用在生成可執(zhí)行文件時(shí)。 |
-O0 | 不進(jìn)行優(yōu)化處理。 |
-O | 或 -O1 優(yōu)化生成代碼。 |
-O2 | 進(jìn)一步優(yōu)化。 |
-O3 | 比 -O2 更進(jìn)一步優(yōu)化,包括 inline 函數(shù)。 |
-shared | 生成共享目標(biāo)文件。通常用在建立共享庫(kù)時(shí)。 |
-static | 禁止使用共享連接。 |
-UMACRO | 取消對(duì) MACRO 宏的定義。 |
-w | 不生成任何警告信息。 |
-Wall | 生成所有警告信息。 |
C++ 是一種靜態(tài)類型的、編譯式的、通用的、大小寫敏感的、不規(guī)則的編程語言,支持過程化編程、面向?qū)ο缶幊毯头盒途幊獭K徽J(rèn)為是一種中級(jí)語言,它綜合了高級(jí)語言和低級(jí)語言的特點(diǎn)。C++ 是一種編譯型語言 C++ 代碼需要通過 編譯器 轉(zhuǎn)為機(jī)器碼才能夠由 CPU 運(yùn)行。通常Linux/Unix系統(tǒng)只要安裝了 GNU 的 GCC 編譯器即可運(yùn)行 C++;Window下需要通過安裝 MinGW 來安裝 GCC;MacOS 下可以通過 Xcode 來配置 GCC。這里我向你介紹一個(gè)更簡(jiǎn)單的方式:通過 Cloud Studio 平臺(tái)來快速開始你的C++項(xiàng)目。
Cloud Studio 已經(jīng)為我提供了內(nèi)置的 C /C++ 開發(fā)環(huán)境,我們只需要選擇他就可以運(yùn)行我們的 C/C++ 項(xiàng)目,通常 C++源文件使用 .cpp、.cp 或 .c 作為擴(kuò)展名,下面提供一個(gè)小例子:
"C/C++"
運(yùn)行環(huán)境,通過命令:g++ -v
可以查看 GCC 是否安裝成功以及 GCC 的版本、配置信息g++ hello.c -o hello.out
編譯剛才我們編寫代碼 -o 參數(shù)是用來指定生成機(jī)器碼文件的文件名以便于區(qū)分,之后目錄中生成了一個(gè) hello.out 的機(jī)器碼文件./hello.out
便可以看見我們編寫的程序的輸出結(jié)果了/*代碼示例*/ #include <iostream> int main() { std::cout << "Hello, Universe! I'm running on Cloud Studio!n"; return 0; }
Tips: 從終端中輸入命令可以看出 Cloud Studio 為我們集成了 Ubuntu16.04.1 + GCC5.4 + Clang3.5.2 的開發(fā)環(huán)境:
有任何疑問,可以查閱幫助文檔
現(xiàn)在 CODING 正在舉辦一場(chǎng)基于 Cloud Studio 工作空間的【我最喜愛的 Cloud Studio 插件評(píng)選大賽】。進(jìn)入活動(dòng)官網(wǎng):https://studio.qcloud.coding.net/campaign/favorite-plugins/index,了解更多活動(dòng)信息。