第 2 章 GNU Compiler Collection (GCC)
GNU Compiler Collection (通常是缩写 GCC )是一个可移植编译器套件,支持各种编程语言。
Red Hat Developer Toolset 与 GCC 9.3.1 一起发布。此版本比 Red Hat Enterprise Linux 中包含的版本更新,并提供很多程序错误修复和增强。
2.1. GNU C Compiler 复制链接链接已复制到粘贴板!
2.1.1. 安装 C Compiler 复制链接链接已复制到粘贴板!
在 Red Hat Developer Toolset 中,GNU C 编译器由 devtoolset-9-gcc 软件包提供,并使用 devtoolset-9-toolchain 自动安装,如 第 1.5 节 “安装 Red Hat Developer Toolset” 所述。
2.1.2. 使用 C Compiler 复制链接链接已复制到粘贴板!
要在命令行上编译 C 程序,请运行 gcc 编译器,如下所示:
scl enable devtoolset-9 'gcc -o output_file source_file...'
$ scl enable devtoolset-9 'gcc -o output_file source_file...'
这会在当前工作目录中创建一个名为 output_file 的二进制文件。如果省略了 -o 选项,则编译器默认创建名为 a.out 的文件。
当您处理由多个源文件组成的项目时,首先编译每个源文件的对象文件,然后将这些目标文件链接在一起。这样,当您更改单个源文件时,您只能编译此文件,而无需编译整个项目。要在命令行上编译目标文件,请执行以下操作:
scl enable devtoolset-9 'gcc -o object_file -c source_file'
$ scl enable devtoolset-9 'gcc -o object_file -c source_file'
这会创建一个名为 object_file 的对象文件。如果省略了 the -o 选项,编译器会创建一个名为 的文件,其源文件带有 .o 文件扩展名。将目标文件链接在一起并创建二进制文件:
scl enable devtoolset-9 'gcc -o output_file object_file...'
$ scl enable devtoolset-9 'gcc -o output_file object_file...'
请注意,您可以使用 scl 工具执行任何命令,从而导致它使用等效的 Red Hat Developer Toolset 二进制文件来运行它。这可让您默认使用 Red Hat Developer Toolset gcc 运行 shell 会话:
scl enable devtoolset-9 'bash'
$ scl enable devtoolset-9 'bash'
验证您在任何时间点上使用的 gcc 版本:
which gcc
$ which gcc
Red Hat Developer Toolset 的 gcc 可执行路径以 /opt 开头。或者,您可以使用以下命令确认版本号是否与 Red Hat Developer Toolset gcc 相匹配:
gcc -v
$ gcc -v
例 2.1. 在命令行中编译 C 程序
考虑名为 hello.c 的源文件,其内容如下:
在命令行中使用 Red Hat Developer Toolset 的 gcc 编译器编译此源代码:
scl enable devtoolset-9 'gcc -o hello hello.c'
$ scl enable devtoolset-9 'gcc -o hello hello.c'
这会在当前工作目录中创建一个名为 hello 的新二进制文件。
2.1.3. 运行 C 程序 复制链接链接已复制到粘贴板!
当 gcc 编译程序时,它会创建一个可执行的二进制文件。要在命令行中运行程序,请切换到具有可执行文件的目录,并运行以下命令:
./file_name
$ ./file_name
例 2.2. 在命令行中运行 C 程序
假设您已成功编译了 hello 二进制文件,如 例 2.1 “在命令行中编译 C 程序” 所示,您可以通过在 shell 提示符后输入以下内容来运行该文件:
./hello
$ ./hello
Hello, World!