Jump To Close Expand all Collapse all Table of contents 在 RHEL 8 中开发 C 和 C++ 应用程序 让开源更具包容性 对红帽文档提供反馈 1. 建立一个开发工作站 Expand section "1. 建立一个开发工作站" Collapse section "1. 建立一个开发工作站" 1.1. 先决条件 1.2. 启用调试和资源存储库 1.3. 设置以管理应用程序版本 1.4. 设置以使用 C 和 C++ 开发应用程序 1.5. 设置以调试应用程序 1.6. 设置以测量应用程序的性能 2. 创建 C 或 C++ 应用程序 Expand section "2. 创建 C 或 C++ 应用程序" Collapse section "2. 创建 C 或 C++ 应用程序" 2.1. 使用 GCC 构建代码 Expand section "2.1. 使用 GCC 构建代码" Collapse section "2.1. 使用 GCC 构建代码" 2.1.1. 代码表单之间的关系 2.1.2. 将源文件编译成目标代码 2.1.3. 使用 GCC 启用 C 和 C++ 应用程序的调试 2.1.4. 使用 GCC 进行代码优化 2.1.5. 使用 GCC 强化代码的选项 2.1.6. 链接代码以创建可执行文件 2.1.7. Example:使用 GCC 构建一个 C 程序(在一个步骤中编译和链接) 2.1.8. Example:使用 GCC 构建一个 C 程序(编译和连接在两个步骤中) 2.1.9. Example:使用 GCC 构建一个 C++ 程序(在一个步骤中编译和链接) 2.1.10. Example:使用 GCC 构建一个 C++ 程序(编译和连接在两个步骤中) 2.2. 将库与 GCC 一起使用 Expand section "2.2. 将库与 GCC 一起使用" Collapse section "2.2. 将库与 GCC 一起使用" 2.2.1. 库命名惯例 2.2.2. 静态和动态链接 2.2.3. 将一个库与 GCC 一起使用 2.2.4. 将一个静态库与 GCC 一起使用 2.2.5. 将一个动态库与 GCC 一起使用 2.2.6. 将静态库和动态库与 GCC 一起使用 2.3. 使用 GCC 创建库 Expand section "2.3. 使用 GCC 创建库" Collapse section "2.3. 使用 GCC 创建库" 2.3.1. 库命名惯例 2.3.2. soname 机制 2.3.3. 使用 GCC 创建动态库 2.3.4. 使用 GCC 和 ar 创建静态库 2.4. 使用 Make 管理更多代码 Expand section "2.4. 使用 Make 管理更多代码" Collapse section "2.4. 使用 Make 管理更多代码" 2.4.1. GNU make 和 Makefile 概述 2.4.2. Example:使用 Makefile 构建一个 C 程序 2.4.3. make 的文档资源 2.5. RHEL 7 后对 toolchain 的更改 Expand section "2.5. RHEL 7 后对 toolchain 的更改" Collapse section "2.5. RHEL 7 后对 toolchain 的更改" 2.5.1. RHEL 8 中的 GCC 的更改 2.5.2. RHEL 8 中 GCC 的安全性增强 2.5.3. RHEL 8 中 GCC 的兼容性破坏的变化 3. 调试应用程序 Expand section "3. 调试应用程序" Collapse section "3. 调试应用程序" 3.1. 启用带有调试信息的调试 Expand section "3.1. 启用带有调试信息的调试" Collapse section "3.1. 启用带有调试信息的调试" 3.1.1. 调试信息 3.1.2. 使用 GCC 启用 C 和 C++ 应用程序的调试 3.1.3. debuginfo 和 debugsource 软件包 3.1.4. 使用 GDB 获取应用程序或库的 debuginfo 软件包 3.1.5. 手动为应用程序或库获取 debuginfo 软件包 3.2. 使用 GDB 检查应用程序内部状态 Expand section "3.2. 使用 GDB 检查应用程序内部状态" Collapse section "3.2. 使用 GDB 检查应用程序内部状态" 3.2.1. GNU 调试器(GDB) 3.2.2. 将 GDB 附加到进程 3.2.3. 使用 GDB 逐步浏览程序代码 3.2.4. 使用 GDB 显示程序内部值 3.2.5. 使用 GDB 断点在定义的代码位置停止执行 3.2.6. 使用 GDB 监视点停止在数据访问和更改时执行 3.2.7. 使用 GDB 调试或线程程序 3.3. 记录应用程序互动 Expand section "3.3. 记录应用程序互动" Collapse section "3.3. 记录应用程序互动" 3.3.1. 用于记录应用程序交互的工具 3.3.2. 使用 strace 监控应用的系统调用 3.3.3. 使用 ltrace 监控应用程序的库功能调用 3.3.4. 使用 SystemTap 监控应用的系统调用 3.3.5. 使用 GDB 截获应用程序系统调用 3.3.6. 使用 GDB 截获应用程序处理信号 3.4. 调试崩溃应用程序 Expand section "3.4. 调试崩溃应用程序" Collapse section "3.4. 调试崩溃应用程序" 3.4.1. 内核转储:它们是什么以及如何使用它们 3.4.2. 使用内核转储记录应用程序崩溃 3.4.3. 使用内核转储检查应用程序崩溃状态 3.4.4. 使用 coredumpctl 创建和访问内核转储 3.4.5. 使用 gcore转储进程内存 3.4.6. 使用 GDB 转储受保护的进程内存 3.5. GDB 中的兼容性破坏更改 4. 开发的其他工具集 Expand section "4. 开发的其他工具集" Collapse section "4. 开发的其他工具集" 4.1. 使用 GCC 工具集 Expand section "4.1. 使用 GCC 工具集" Collapse section "4.1. 使用 GCC 工具集" 4.1.1. 什么是 GCC Toolset 4.1.2. 安装 GCC Toolset 4.1.3. 从 GCC Toolset 安装单个软件包 4.1.4. 卸载 GCC 工具集 4.1.5. 从 GCC Toolset 运行工具 4.1.6. 使用 GCC Toolset 运行 shell 会话 4.1.7. 其他资源 4.2. GCC Toolset 9 Expand section "4.2. GCC Toolset 9" Collapse section "4.2. GCC Toolset 9" 4.2.1. GCC Toolset 9 提供的工具和版本 4.2.2. GCC Toolset 9 中的 C++ 兼容性 4.2.3. GCC Toolset 9 中的 GCC 细节 4.2.4. GCC Toolset 9 中的 binutils 细节 4.3. GCC Toolset 10 Expand section "4.3. GCC Toolset 10" Collapse section "4.3. GCC Toolset 10" 4.3.1. GCC Toolset 10 提供的工具和版本 4.3.2. GCC Toolset 10 中的 C++ 兼容性 4.3.3. GCC Toolset 10 中的 GCC 细节 4.3.4. GCC Toolset 10 中的 binutils 细节 4.4. GCC Toolset 11 Expand section "4.4. GCC Toolset 11" Collapse section "4.4. GCC Toolset 11" 4.4.1. GCC Toolset 11 提供的工具和版本 4.4.2. GCC Toolset 11 中的 C++ 兼容性 4.4.3. GCC Toolset 11 中的具体信息 4.4.4. GCC Toolset 11 中的 binutils 细节 4.5. GCC Toolset 12 Expand section "4.5. GCC Toolset 12" Collapse section "4.5. GCC Toolset 12" 4.5.1. GCC Toolset 12 提供的工具和版本 4.5.2. GCC Toolset 12 中的 C++ 兼容性 4.5.3. GCC Toolset 12 中的 GCC 的具体信息 4.5.4. GCC Toolset 12 中 binutils 的细节 4.5.5. GCC Toolset 12 中 annobin 的细节 4.6. GCC Toolset 13 Expand section "4.6. GCC Toolset 13" Collapse section "4.6. GCC Toolset 13" 4.6.1. GCC Toolset 13 提供的工具和版本 4.6.2. GCC Toolset 13 中的 C++ 兼容性 4.6.3. GCC Toolset 13 中 GCC 的具体内容 4.6.4. GCC Toolset 13 中 binutils 的具体内容 4.6.5. GCC Toolset 13 中 annobin 的具体内容 4.7. 使用 GCC Toolset 容器镜像 Expand section "4.7. 使用 GCC Toolset 容器镜像" Collapse section "4.7. 使用 GCC Toolset 容器镜像" 4.7.1. GCC Toolset 容器镜像内容 4.7.2. 访问并运行 GCC Toolset 容器镜像 4.7.3. Example:使用 GCC Toolset 13 Toolchain 容器镜像 4.8. 编译器工具集 4.9. Annobin 项目 Expand section "4.9. Annobin 项目" Collapse section "4.9. Annobin 项目" 4.9.1. 使用 annobin 插件 Expand section "4.9.1. 使用 annobin 插件" Collapse section "4.9.1. 使用 annobin 插件" 4.9.1.1. 启用 annobin 插件 4.9.1.2. 将选项传递给 annobin 插件 4.9.2. 使用 annocheck 程序 Expand section "4.9.2. 使用 annocheck 程序" Collapse section "4.9.2. 使用 annocheck 程序" 4.9.2.1. 使用 annocheck 检查文件 4.9.2.2. 使用 annocheck 检查目录 4.9.2.3. 使用 annocheck 检查 RPM 软件包 4.9.2.4. 使用 annocheck 额外工具 Expand section "4.9.2.4. 使用 annocheck 额外工具" Collapse section "4.9.2.4. 使用 annocheck 额外工具" 4.9.2.4.1. 通过工具 启用构建 4.9.2.4.2. 启用 备注 工具 4.9.2.4.3. 启用 section-size 工具 4.9.2.4.4. 强化检查器基础知识 Expand section "4.9.2.4.4. 强化检查器基础知识" Collapse section "4.9.2.4.4. 强化检查器基础知识" 4.9.2.4.4.1. 强化检查器选项 4.9.2.4.4.2. 禁用强化检查程序 4.9.3. 删除冗余 annobin 备注 4.9.4. GCC Toolset 12 中 annobin 的细节 5. 补充主题 Expand section "5. 补充主题" Collapse section "5. 补充主题" 5.1. 编译器和开发工具中的兼容性破坏更改 5.2. 在 RHEL 8 上运行 RHEL 6 或 7 应用程序的选项 法律通告 Settings Close Language: 简体中文 한국어 日本語 English Português Español Language: 简体中文 한국어 日本語 English Português Español Format: Multi-page Single-page Format: Multi-page Single-page Language and Page Formatting Options Language: 简体中文 한국어 日本語 English Português Español Language: 简体中文 한국어 日本語 English Português Español Format: Multi-page Single-page Format: Multi-page Single-page Red Hat Training A Red Hat training course is available for RHEL 8 在 RHEL 8 中开发 C 和 C++ 应用程序 Red Hat Enterprise Linux 8设置开发人员工作站,在 Red Hat Enterprise Linux 8 中开发和调试 C 和 C++ 应用程序Red Hat Customer Content Services法律通告摘要 使用 Red Hat Enterprise Linux 8 中提供的不同功能和工具来开发和调试 C 和 C++ 应用程序。 Next