在 Linux 上编译 C/C++ 程序

                     

贡献者: addis

   本文介绍如何使用 Linux 命令行用 g++ 编译器编译一个 C++ 的 Hello World 程序。阅读本文不需要任何基础(包括 C++ 和 Linux)。

   如何安装 Linux 命令行?你可以直接在电脑上安装一个 Linux 系统1,也可以在 Windows 10 或 11 中使用 WSL。如果使用 Win7 系统,可以安装一个 MinGW。本文以 Ubuntu 系统为例(Linux 有不同的版本,Ubuntu 是广泛使用的一个)。

1. 在命令行安装 g++

   打开命令行后,要检查是否安装了 g++,输入以下命令并按回车。

g++ --version
这个命令由两部分组成,第一部分是 g++,即在命令行中运行名为 g++ 这个程序。第二部分是 g++ 程序的 --version 选项,即查看已安装 g++ 的版本。如果系统上没有安装 g++,命令行会返回类似这样的提示(以 Ubuntu 为例)
Command 'g++' not found, but can be installed with:
sudo apt install g++
要安装 g++,只需要在 terminal 输入两个命令
sudo apt update
sudo apt install g++
sudo 是 super user do,即使用操作系统的 root 权限运行指定的程序。root 权限是 Linux 系统的最高权限,几乎可以做任何事情(包括危险操作)使用时需要谨慎。命令行中的一些命令(如安装卸载软件)一般需要 root 权限,所以需要在 apt 命令前面加 sudo。如果你已经以 root 的身份登录 Linux 则可以不用。

   apt(也可以用 apt-get)是 Ubuntu 系统中用来管理程序的命令(安装,卸载,更新等)。注意系统一般要链接网络才能使用 apt 安装程序。在安装任何程序之前,建议新更新一下 apt 的数据库(第一行)。

   updateapt 的一个参数(argument),就跟 g++ 的 --version 参数一样。Linux 中程序的许多参数以 -- 或者 - 开头。

   installapt 程序的另一个参数。g++install 的参数,即要安装的程序。

   运行后可以按提示安装 g++,过程中可能需要输入 Linux 的用户密码,以及确认是否安装。输入 Y 然后按回车确认,也可以直接按回车,因为大写的 Y 表示这是默认选项。

After this operation, 155 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y

   安装完以后,再次查看 g++ --version,得到

g++ (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
可以看到我们安装的版本是 7.4.0,不同 Ubuntu 版本的默认 g++ 版本不一样。

2. 创建第一个 C++ 程序

   打开一个文本编辑器,创建一个新文本文档,命名为 hello.cpp,输入如下 C++ 代码并保存。

代码 1:hello.cpp
// print hello world
#include <iostream>

int main()
{
    std::cout << "hello world!" << std::endl;
}
在编译之前,我们首先要介绍工作目录(working directory),也叫当前目录(current directory),路径有时候也叫路径。命令行一般会在输入的每一行命令之前显示当前的路径如图 1

图
图 1:蓝色的路径就是当前路径

   这个目录一般是打开命令行的目录(例如 Ubuntu 中在某个文件夹中右键打开命令行,或者 win10 中按 Shift + 右键 打开 WSL 的命令行)。另外也可以在命令行中运行 pwd 命令显示当前路径。我们假设刚才创建的 cpp 文件就保存在这个目录下。

   现在我们来用 g++ 编译这个程序,命令行输入

g++ hello.cpp
如果编译成功,将会在同一文件夹中生成名为 a.out 可执行文件,相当于 windows 中的 exe 文件。要运行该文件,使用(./ 表示当前的 working directory)
./a.out
运行后可以看到程序在命令行输出了 hello world!

   这样,我们就成功在 Linux 中运行了第一个 C++ 程序。


1. ^ 推荐 Ubuntu,因为小时百科大部分 Linux 相关的教程都是以 Ubuntu 为环境的。


致读者: 小时百科一直以来坚持所有内容免费,这导致我们处于严重的亏损状态。 长此以往很可能会最终导致我们不得不选择大量广告以及内容付费等。 因此,我们请求广大读者热心打赏 ,使网站得以健康发展。 如果看到这条信息的每位读者能慷慨打赏 10 元,我们一个星期内就能脱离亏损, 并保证在接下来的一整年里向所有读者继续免费提供优质内容。 但遗憾的是只有不到 1% 的读者愿意捐款, 他们的付出帮助了 99% 的读者免费获取知识, 我们在此表示感谢。

                     

友情链接: 超理论坛 | ©小时科技 保留一切权利