# 【伴隨命令】編譯、運行你的程序
## Part1
我們已經寫出了自己的第一個 C++ 語言程序,并且送到了系統中進行了編譯和運行。在這一節我們將了解一下 C++ 語言的代碼在被編寫完成后,我們可以如何手動地編譯它并且把編譯后的可執行程序運行起來。
你看到的這個黑色的框被我們稱為 **終端(terminal)**,在你的系統中你也可以找到終端,并且進行使用。
請在終端中輸入`ls -l`,并且按回車鍵確認。
## Part2
我們會看到,終端中返回了一系列看起來有些復雜的結果,現在我們來一起分析一下這段文字:
* 在我們輸入命令之前,在第一行的是 **命令提示符(prompt)**`→ ~/project`。我們在它之后輸入我們希望執行的命令`ls`。輸入完這個命令之后,我們還希望給這條命令加上一個參數`-l`,讓它返回關于`ls`的更多信息,于是便在`ls`之后寫上`-l`。注意,在`ls`和`-l`之間必須加上空格(可以是一個或若干個)。通常,形如`-l`的參數,即以`-`開頭的參數都是命令的配置項,當加上不同的配置項時,往往會得到不同的結果。
* 之后的行是命令運行的結果。大多數命令會產生運行結果,并將結果依次展示在終端里,緊接著你所輸入的命令的下方。當然,也有一些命令不會輸出任何內容,只有遇到一些異常情況或程序非正常退出時才會輸出一些信息。
* 命令運行結果之后依然是命令提示符,當程序運行完成后,你就可以在命令提示符后面向終端繼續發出其他命令了。有些時候,當你運行程序時自認為程序已經完成了,但卻沒有出現命令提示符,不要急,這說明程序實際上還沒有運行完成哦。
`ls`的命令是用于列出當前我們所在的某一個計算機存儲位置中所有的 **文件(file)** 和 **目錄(directory)** 的。我們通過`ls`看到現在我們所在的位置有一個文件`main.cpp`。
使用 Windows 的同學可以自行搜索下 cmd 下的`dir`命令使用方法——它的功能與 Unix 的`ls`命令是一樣的。
接下來,讓我們試試之前學習過的`g++`編譯程序的方法。請輸入:
~~~
g++ -o program main.cpp
~~~
并按回車鍵確認。
## Part3
這次是不是什么都沒輸出?沒錯,我們這個編譯命令就是一個不會輸出任何內容的命令。
`g++`是這個編譯命令的名稱,通過這個命令,我們告訴一個叫`g++`的編譯器,將`main.cpp`的代碼文件編譯成一個名叫`program`的可執行文件(用`-o program`進行說明)。
接下來,我們再次輸入`ls -l`看看我們所在的位置現在都有什么文件。
## Part4
現在是不是除了`main.cpp`之外又多了一個`program`文件呢?接下來,讓我們運行一下編譯后生成的可執行程序文件`program`。
請輸入`./program`對程序進行運行。這里我們在程序名前加的`./`表示當前所在位置的目錄,之后如果你希望自己運行自己編譯的程序,也需要這么做噢。
## Part5
我們的程序是不是和之前一樣成功地輸出了一行`Hello World`了呢?
之后很長一段時間,我們都將暫時忽略編譯過程。在學習 C++ 語言的過程中,編譯和運行程序的過程都會被系統自動完成,而你在自己的環境進行學習時,則需要使用上面說到的方式進行編譯和運行(或使用 IDE 中的編譯、運行功能)。
- 教材介紹
- 《編程初學入門常識》
- 什么是程序語言
- 【知識精講】編程與編程語言
- 【選擇測試】編程語言分類
- 【知識精講】高級語言分類
- 【選擇測試】編譯與解釋
- 【選擇測試】程序員笑話-Java
- 熟悉鍵盤上用于編程的鍵位
- 【知識精講】認識你的鍵盤
- 【知識精講】中文和英文字符
- 【匹配測試】識別中英文符號
- 【選擇測試】中英文符號的影響
- 【伴隨編程】不要使用中文引號
- 【伴隨編程】不要使用中文分號
- 【伴隨編程】正確地輸入符號
- 【選擇測試】找出程序中的錯誤
- 初始工程師思維
- 【知識精講】二進制思想
- 【選擇測試】程序員笑話-湊整
- 【知識精講】閉合的邏輯
- 【選擇測試】程序員笑話-條件
- 程序員職業與生活
- 【知識精講】程序員的發展方向
- 【知識精講】程序員的裝備
- 【知識精講】程序員的健康
- 【選擇測試】做一名健康的程序員
- 《C++程序設計》
- 前言
- 【知識精講】編程與計算機科學
- 【知識精講】編程與軟件工程
- 【知識精講】如何學習編程
- 你好C++
- 【知識精講】你好,C++
- 【知識精講】C++程序是如何開發的
- 【知識精講】成為一名Power User
- 【伴隨編程】讓我們一起說你好
- 【知識精講】你的第一個C++語言程序
- 【伴隨命令】編譯、運行你的程序
- 【伴隨編程】將變量流式輸出
- 【選擇測試】變量的作用域
- 【知識精講】變量與數據類型
- 【匹配測試】C++語言的入門概念
- 【知識精講】在程序中學會換行
- 【選擇測試】正確地換行
- 簡單數學運算
- 【知識精講】重新認識基本運算
- 【選擇測試】運算符的理解
- 【伴隨編程】做一下簡單的運算
- 【伴隨編程】a 的 n 次方
- 【知識精講】數學函數
- 【伴隨編程】讓C++語言變成計算器
- 【伴隨編程】計算球的體積
- 【匹配測試】數學世界知多少
- 【知識精講】在程序中添加注釋
- 【選擇測試】正確地寫注釋
- 從伴隨輸入到變量地址
- 【伴隨編程】 一個數字復讀機器
- 【選擇測試】理解標準輸入輸出
- 【伴隨編程】一個加法計算器
- 【程序設計】A+B+C問題
- 【伴隨編程】簡單的I/O格式控制
- 【知識精講】地址與取地址符
- 【伴隨編程】看看我們的地址
- 習題一:面積與周長
- 【程序設計】矩形面積與周長
- 【程序設計】三角形面積與周長
- 【程序設計】圓形面積與周長
- 程序中的是與非
- 【知識精講】是非的表示與關系運算
- 【伴隨編程】驗一驗關系運算式
- 【選擇測試】關系運算式求值
- 【知識精講】如果的意義
- 【伴隨編程】分段函數求值
- 【知識精講】如果之后的如果
- 【伴隨編程】五則運算器
- 【選擇測試】分支的嵌套
- 【伴隨編程】問號表達式
- 【知識精講】是非之間的邏輯組合
- 【伴隨編程】判斷閏年
- 【程序設計】日期合法性
- 【知識精講】多路順序結構
- 【知識精講】在程序中學會縮進
- 【選擇測試】正確的縮進
- C++程序中的苦力
- 【知識精講】使用循環結構
- 【選擇測試】對比兩種循環
- 【伴隨編程】使用while循環
- 【填空測試】理解循環結構
- 【知識精講】自減和自增運算符
- 【伴隨編程】使用自增運算符
- 【知識精講】for循環
- 【選擇測試】for循環的使用
- 【程序設計】一大波好玩兒的程序
- 《代碼能力快速提升》
- 《基礎數據結構》
- 《搜索入門》
- 《動態規劃基礎》
- 《數論和基礎數學》
- 《圖和數基礎》