# 【伴随命令】编译、运行你的程序
## 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循环的使用
- 【程序设计】一大波好玩儿的程序
- 《代码能力快速提升》
- 《基础数据结构》
- 《搜索入门》
- 《动态规划基础》
- 《数论和基础数学》
- 《图和数基础》