概述
Linux 是一组开源的类 UNIX 操作系统,Ubuntu 是一种基于 Linux 的操作系统,通常用于运行基于 Linux 的应用程序。要在 Linux 上安装 C 并在 Ubuntu 上构建和运行 C 程序文件,我们需要安装 GCC 编译器。在 Ubuntu 存储库中,GCC 编译器是我们需要安装的构建基本包的一部分。
我们知道在 Linux 上安装 C 语言可能看起来令人生畏,但不要担心;我们已经为您提供了分步指南!
在 Linux 中使用终端安装 GCC 编译器
GCC编译器(GNU编译器集合)是用C,C++,Ada,GO,D,Fortran和Objective-C编程语言编写的程序的编译器和库的集合,它是在GNU通用公共许可证下分发的。我们将使用 Linux 终端安装 GCC 编译器,以在 Linux 上安装 C。
GCC 编译器以及构建应用程序所需的其他几个库和实用程序可以在默认的 Ubuntu 存储库(Ubuntu 是基于 Linux 的操作系统)的 build-essential 元包下找到。
什么是构建必备包?
Ubuntu 上的这个构建必不可少的元包带有五个单独的包,这些包在软件编译过程中需要,它包含将用于构建和运行 C 程序的 GCC 编译器。下面列出了这五个软件包:
gcc:GNU 编译器集合(GCC Compiler)用于编译用 C 语言编写的程序。g++:GNU C++编译器用于编译用C++语言编写的程序。libc6-dev:这是 GNU 库文件包。编译简单 C 和 C++ 程序所需的开发库和头文件都包含在此包中。make:这是一个方便的工具,用于控制程序的编译。该工具读取一个名为“makefile”的文件,该文件告诉编译器如何完成其工作。dpkg-dev:这个软件包可以用来解压、编译和上传 Debian 源码包。如果你想为一个基于Debian的系统打包你的程序,这个工具会派上用场。因此,我们必须执行以下步骤才能在我们的 Linux 操作系统中安装 build-essential 软件包:
首先,我们必须打开终端;我们可以使用快捷键 Ctrl + Alt + T,也可以通过在菜单中搜索来手动打开它(⋮⋮⋮图标)。
1. 首先,使用以下命令更新软件包列表:
$ sudo apt update
Linux 中的 apt 命令负责在我们的系统上安装、卸载和更新应用程序。将您的计算机视为工厂,将 apt 命令视为工厂经理,负责管理新设备的安装、移除过时的设备以及将所需设备更新到最新版本,同时跟踪当前正在使用的设备名称和版本。因此,sudo apt update 命令用于更新软件版本的跟踪,以帮助在系统中安装最新的可用软件版本。
注意:
sudo(超级用户 DO)允许用户以超级用户或其他用户的身份运行命令,具体取决于安全策略。因此,如果需要,请输入您的系统密码以继续。
输出:
scaler@scaler-topics:~$ sudo apt update[sudo] password for scaler:Hit:1 http://in.archive.ubuntu.com/ubuntu focal InReleaseGet:2 http://in.archive.ubuntu.com/ubuntu focal updates InRelease [114 kB] Get:3 http://tn.archive.ubuntu.com/ubuntu focal backports InRelease [108 kB] Get:4 http://security.ubuntu.com/ubuntu focal-securtty InRelease [114 kB] Get:5 http://in.archive.ubuntu.com/ubuntu focal updates/main amd64 Packages [1, 468 kB]Get:6 http://in.archive.ubuntu.com/ubuntu focal-updates/matn 1386 Packages [585 kB]Get:7 http://in.archive.ubuntu.com/ubuntu focal-updates/main Translation-en [291 kB]Get:8 http://in.archive.ubuntu.com/ubuntu focal updates/main amd64 DEP-11 Metadata [279 kB]Get:9 http://in.archive.ubuntu.com/ubuntu focal-updates/main DEP-11 48x48 Icons [60.8 kB]Get:10 http://in.archive.ubuntu.com/ubuntu focal-updates/main DEP-11 64x64 Icon s [98.3 kB]Get:11 http://tn.archive.ubuntu.com/ubuntu focal-updates/main amd64 c-n-f Metad ata [14.7 kB]Get:12 http://in.archive.ubuntu.com/ubuntu focal-updates/restricted amd64 Packa ges [694 kB]Get:13 http://tn.archive.ubuntu.com/ubuntu focal-updates/restricted Translation -en [99.0 kB] Get:14 http://tn.archive.ubuntu.com/ubuntu focal-updates/untverse 1386 Packages [663 kB]Get:15 http://in.archive.ubuntu.com/ubuntu focal-updates/universe amd64 Package s [892 kB]Get:16 http://tn.archive.ubuntu.com/ubuntu focal-updates/universe Translation-e n [196 kB]...
2. 使用以下命令安装软件包 build-essential:
$ sudo apt install build-essential
如果需要,请输入您的系统密码以继续。
输出:
scaler@scaler-topics:~$ sudo apt install build-essential[sudo] password for scaler:Reading package lists... DoneBuilding dependency tree Reading state information... DoneThe following additional packages will be installed: binutils binutils-common binutils-x86-64-linux-gnu dpkg-dev fakeroot g++ g++-9 gcc gcc-9 libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan5 libatomic1 libbinutils libc-dev-bin libc6-dev libcrypt-dev libctf-nobfd0 libctf0 libfakeroot libgcc-9-dev libitm1 liblsan0 libquadmath0 libstdc++-9-dev libtsan0 libubsan1 linux-libc-dev make manpages-devSuggested packages: binutils-doc debian-keyring g++-multilib g++-9-multilib gcc-9-doc gcc-multilib autoconf automake libtool flex bison gcc-doc gcc-9-multilib gcc-9-locales glibc-doc libstdc++-9-doc make-docThe following NEW packages will be installed: binutils binutils-common binutils-x86-64-linux-gnu build-essential dpkg-dev fakeroot g++ g++-9 gcc gcc-9 libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan5 libatomic1 libbinutils libc-dev-bin libc6-dev libcrypt-dev libctf-nobfd0 libctf0 libfakeroot libgcc-9-dev libitm1 liblsan0 libquadmath0 libstdc++-9-dev libtsan0 libubsan1 linux-libc-dev make manpages-dev0 upgraded, 32 newly installed, 0 to remove and 259 not upgraded.Need to get 3518 kB/34.4 MB of archives.After this operation, 157 MB of additional disk space will be used.Do you want to continue? [Y/n]
按 Y 键,然后在屏幕上获得与上述类似的输出后按 Enter 键以继续安装过程。
完全安装构建必不可少的元包需要 3-5 分钟。此过程将在 Linux 操作系统上安装 C,我们可以使用 GCC 编译器来编译和运行我们的 C 程序。
祝贺!现在,您已经在 Linux 中完成了 build-essential 软件包和 GCC 编译器 (C 语言) 的安装。
注意:
在本教程中, 我们使用的是 Ubuntu 20.04 LTS 版本。此版本的 Ubuntu 带有预装的 GCC 编译器版本,因此您可以先使用下一节中提到的命令检查已安装的编译器版本。
适用于 Red Hat Linux / Fedora / CentOS
Red Hat Linux、Fedora 或 CentOS 中没有 build-essentials 软件包,但我们可以通过软件开发所需的这些操作系统中的类似软件包在 Linux 上安装 C。因此,如果您使用的是基于 Red Hat Linux / Fedora / CentOS 的 Linux 操作系统,那么您必须安装开发工具包才能在您的系统中获取 GCC 编译器。
1. 首先以 root 用户身份使用以下命令更新软件包列表:
# yum update
2. 以 root 用户身份使用以下命令安装开发工具:
# yum groupinstall 'Development Tools'
或
$ sudo yum group install "Development Tools"
检查已安装的编译器版本
现在你已经安装了build-essentials/Development Tools软件包,你可以很容易地检查/验证你的GCC编译器版本。在本节中,您将了解如何在 Linux 终端中使用以下命令检查/验证已安装的 GCC 编译器版本:
$ gcc --version
注意:
gcc 命令下的 --version 标志兼容 Linux 中几乎所有的终端开发软件。
输出:
scaler@scaler-topics:~$ gcc --versiongcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0Copyright (C) 2019 Free Software Foundation, Inc.This is free software; see the source for copying conditions. There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
如果您在屏幕上看到类似于上面显示的输出,那么您就可以开始了。
注意:
如果输出类似于下面的输出,则在安装过程中存在一些差异。重复上述步骤以再次安装 build-essential 软件包。
scaler@scaler-topics:~$ gcc --versionCommand 'gcc' not found, but can be installed with:sudo apt install gcc
创建 C 程序
在本节中,您将使用预安装的文本编辑器在 Linux 上创建一个简单的 C 程序。
有许多 Linux 终端命令可以创建新文件,例如使用 touch、>(重定向运算符)、cat、echo 命令或终端编辑器(如 vi、vim 或 nano)。在本教程中,我们在终端中使用 touch 命令来创建一个空的 C 程序文件。在创建新文件之前,您还可以将终端的目录更改为系统中的任何所需位置。在本教程中,我们选择了 Desktop 目录。您可以使用 cd Desktop(将目录更改为 Desktop)命令切换到 Desktop 目录,也可以选择您选择的任何目录,只需在 cd 命令后传递目录的位置地址即可。您必须确保 C 程序文件编译在与 C 程序文件所在的目录相同的目录中。
让我们看看它在 Ubuntu 20.04 操作系统中的实际效果。
步骤1:在终端中触摸hello.c命令,在桌面目录下创建一个空的hello.c C程序文件。
步骤2:在 Linux 的内置文本编辑器中打开 hello.c 文件(或者您可以使用您选择的任何编辑器,如 Sublime Text 或 Visual Studio Code),然后在编辑器中键入 Hello World C 程序,如下所示。
世界您好C语言程序
// C Program to print Hello, World! in the output#include<stdio.h>int main(){ // printf function is used to print the string argument in the output window printf("Hello, World!\n"); return 0;}
输出:
Hello, World!
祝贺!您现在距离在 Linux 操作系统下编译 C 程序只有一步之遥。至此,您已经通过终端创建了一个新文件 hello.c,并在内置的文本编辑器中成功编写了 Hello World 程序。
现在让我们看看如何在 Linux 终端中编译上面的 C 程序文件。
使用 GCC 编译器编译和执行 C 程序
要编译我们的 C 程序文件,我们可以在终端中使用以下命令(在 hello.c 文件所在的同一目录中使用此命令):
$ gcc hello.c -o hello
上面的命令将生成一个带有 hello 的可执行文件,如命令中 -o 后给出的那样。我们可以为可执行文件命名任何名称。我们不需要给出与 C 程序文件相同的名称。
注意:
我们还必须确保在 hello.c 文件所在的同一目录中使用上述命令。
现在要运行这个可执行文件,我们只需要运行以下命令,C 程序的输出将显示在终端屏幕上。
$ ./hello
如果您编写了与上一节中提到的相同的 C 程序,则此命令将在终端上给出 Hello, World! 输出。
注意:
在存在 hello 可执行文件的同一目录中使用此命令。
让我们看看它在 Ubuntu 20.04 操作系统中的实际效果。
步骤1:使用 gcc hello.c -o hello 命令编译 hello.c 程序并生成 hello 可执行文件。从图中我们可以看出,在 Desktop 目录中创建了一个 hello 文件。
步骤2:要运行可执行文件,只需输入 ./hello 命令,输出就会显示在终端屏幕上,如下图所示。
注意:
在存在 hello 可执行文件的同一目录中使用此命令。例如,我们在 Desktop 目录下编译和执行我们的程序文件。
如果您编写了与上一节中提到的相同的 C 程序,则此命令将在终端上给出 Hello, World! 输出。
恭喜:您已经完成了Linux操作系统下C程序的编译和运行过程。