长生栈 长生栈
首页
  • 编程语言

    • C语言
    • C++
    • Java
    • Python
  • 数据结构和算法

    • 全排列算法实现
    • 动态规划算法
  • CMake
  • gitlab 安装和配置
  • docker快速搭建wordpress
  • electron+react开发和部署
  • Electron-创建你的应用程序
  • ImgUI编译环境
  • 搭建图集网站
  • 使用PlantUml画时序图
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Living Team

编程技术分享
首页
  • 编程语言

    • C语言
    • C++
    • Java
    • Python
  • 数据结构和算法

    • 全排列算法实现
    • 动态规划算法
  • CMake
  • gitlab 安装和配置
  • docker快速搭建wordpress
  • electron+react开发和部署
  • Electron-创建你的应用程序
  • ImgUI编译环境
  • 搭建图集网站
  • 使用PlantUml画时序图
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Cmake 基本使用
  • Linux和Windows常用命令对比
  • Nginx的使用方法
  • Bash常用语法
  • 使用PlantUml画时序图
  • 使用PlantUML画类图
  • 编译工具链
    • GNU工具链
    • GNU开发工具组成
    • GNU Tools 开发工具组件介绍
      • GCC
      • binutils
      • gdb
      • GNU make
      • diff
      • patch
      • CVS
  • gcc工具的概述和使用
  • 自动化构建工具——Make/Makefile
  • 使用开源AI模型Whisper为视频生成字幕
  • MySQL基础操作
  • 工具
DC Wang
2023-03-23
目录

编译工具链

# 编译工具链

编译软件是一个由多个步骤组成的过程,每个步骤都需要使用不同的工具进行处理。这些工具紧密协作,前一个工具的输出会成为后一个工具的输入,故称之为工具链。

# GNU工具链

GNU toolchain(GNU工具链)是一个包含了由GNU项目所产生的各种编程工具的集合。这些工具形成了一条工具链(串行使用的一组工具),用于开发应用程序和操作系统。

GNU既支持本地程序开发,又支持交叉编译。

  • GNU Tools:全称(GNU Development Toolchains)
  • GNU Tools交叉开发环境:全称(GNU Cross-Plateform Development Toolchains)

# GNU开发工具组成

GNU Tools是Linux环境下最主要的开发工具集,主要有以下几个部分:

  • 编译开发工具:把源程序编译为可执行文件,如gcc。

  • 调试工具:对可执行程序进行源码或汇编级调试的软件,如gdb。

  • 软件工程工具:用于协助多人开发或大型软件项目管理的软件,如make等。

# GNU Tools 开发工具组件介绍

# GCC

GCC全称GNU Compiler Collection,是一组工具,支持C、C++、ADA、Java、Fortran、PASCAL等语言。

工具 功能
cpp GNU C编译器的预处理器
gcc 符合ISO标准的C编译器,具体参考gcc工具的概述和使用 (opens new window)
g++ 基本符合ISO标准的C++编译器,gcc与g++的比较 (opens new window)
gcj GCC的java前端
gnat GCC的GNU ADA 95的前端

# binutils

binutils是一组二进制工具程序集合,是辅助GCC的主要软件。

工具 功能
as GNU汇编器
ld GNU链接器
ar 创建归档文件,以及制作静态库的工具
nm 列出目标文件中的符号
objcopy 复制和转化obj文件
objdump 显示对象文件的信息
readelf 显示elf格式执行文件中的各种信息
size 显示目标文件和可执行文件各段的大小
strings 显示文件中可以打印的字符
strip 去掉可执行文件中多余的信息(如调试信息)

# gdb

GNU调试器。可以用来调试C、C++和其他语言编写的程序。如加一些图形前端,可以在图形环境下调试程序。

# GNU make

GNU make是一个用来控制可执行程序生成过程的程序。它允许用户生成和安装软件包,而无需了解生成、安装软件包的过程。

# diff

比较文本差异的工具,也可以用来生成补丁。

# patch

补丁安装程序,可根据diff生成的补丁来更新程序。

# CVS

版本控制系统,用于管理发行版本和控制在多位作者间同时编辑源文件。

编辑 (opens new window)
#编译#gcc
上次更新: 2023/03/31, 22:34:04
使用PlantUML画类图
gcc工具的概述和使用

← 使用PlantUML画类图 gcc工具的概述和使用→

最近更新
01
ESP32-网络摄像头方案
06-14
02
ESP32-PWM驱动SG90舵机
06-14
03
ESP32-实时操作系统freertos
06-14
更多文章>
Theme by Vdoing | Copyright © 2019-2025 DC Wang All right reserved | 辽公网安备 21021102001125号 | 吉ICP备20001966号-2
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式