• Linux进阶-编译工具链


    目录

    Git:版本控制工具。

    本地编译和交叉编译

    linux程序的运行

    GCC编译器

    GDB调试器


    Git:版本控制工具

    sudo apt install git -y。-y表示当安装过程提示选择全部为"yes"。

    GIT命令说明示例
    clone克隆,从远程仓库下载到本地仓库git clone https://e.coding.net/weiongshan/01_all_series_quickstart.git
    pull拉取,把本地仓库更新到远程仓库git pull
    log查看本地仓库的记录git log,快捷键:f前翻、b后翻、q退出
    status查看本地仓库的状态,比如有无修改、修改有无提交进仓库里git status
    tag查看标签,或是打标签

    git tag(查看标签)

    git tag v2(打标签)

    checkout提取出某个版本

    使用git log查看版本,可以看到这样的版本号:

    commit 4eb78f0a27a85957e1d38a23c5b031cc2aa4b93f

    这时就可以执行以下命令取出这个版本:

    git checkout 4eb78f0a27a85957e1d38a23c5b031cc2aa4b93f

    执行上诉命令后,当前目录里就是这个版本的源码:

    要想提取出最新的代码,执行:git checkout master

    图形化介绍GIT 

    GitHub:国外用git工具来搭建的远程服务器。

    Gitee:国内用git工具来搭建的远程服务器。

    廖雪峰的git教程:https://www.liaoxuefeng.com/wiki/896043488029600

    git官方中文手册:https://www.git-scm.com/book/en/v2

    本地编译和交叉编译

    本地编译:编译器运行在ARM(或X86_64)架构平台上,编译生成ARM(或X86_64)架构的可执行程序。

    交叉编译:编译器运行在ARM(或X86_64)架构平台上,编译生成X86_64(或ARM)架构的可执行程序。

    在虚拟机中,得知gcc链接于x86_64-linux-gnu-gcc-11。 单片机一般链接于arm-linux-gnueabihf-gcc-8。

    第一项:支持的硬件平台

    第二项:linux(运行在Linux操作系统上)或none(无操作系统,如裸机、uboot或linux内核代码本身等)

    第三项:gnu-glibc库        eabi-应用二进制标准接口        hf-编译器支持硬浮点平台

    ubuntu 安装x86_64-GCC:apt install gcc

    ubuntu 安装ARM-GCC:apt install gcc-arm-linux-gnueabihf

    linux程序的运行

    GCC编译器

    gcc编译选项描述
    -c只进行预处理、编译和汇编,生成.o文件
    -S只进行预处理、编译,生成.s文件
    -E只进行预处理,产生预处理后的结果到标准输出
    -C预处理时不删除注释信息,常与-E同时使用
    -o指定目标名称,常与-c、-S同时使用,默认是.out
    -O[0~3]编译器优化,数值越大优化级别越高,0没有优化
    -g编译器编译时加入调试信息
    -share使用动态库
    -static禁用使用动态库

    预处理过程:编译器会对源代码中的头文件和预处理语句进行分析,生成以.i为后缀的预处理文件。

    编译过程:将输入的源代码编译成.o为后缀的目标文件。

    汇编过程:将汇编语言编译成.o为后缀的目标文件。

    链接过程:所有目标文件被安排在可执行程序中恰当的位置。

    GDB调试器

    1. apt install gdb
    2. gcc -g -o helloworld helloworld.c
    3. gdb helloworld
    GDB命令描述
    file <文件名>在GDB中打开可执行文件
    break设置断点,支持的形式:break 行号、break 函数名称、break 行号/函数名称 if 条件
    info查看和可执行程序相关的各种信息
    kill终止正在调试的程序
    print显示变量或表达式的值
    set args设置调试程序的运行参数
    delete删除设置的某个断点或观测点
    clear删除设置在指定行号或函数上的断点
    continue从断点处继续执行程序
    list        列出GDB中打开的可执行文件代码
    watch在程序中设置观测点
    run运行打开的可执行文件
    next单步执行程序
    step进入要调用的函数内部,查看执行情况
    whatis查看变量或函数原型,调用格式:whatis 变量名/函数名
    ptype显示数据结构定义情况
    make编译程序
    quit退出GDB

  • 相关阅读:
    【web前端】定位
    C++ 基础与深度分析 Chapter11 类与面向对象编程(析构与复制成员函数、字面值类、成员指针与bind交互)
    代码随想录Day_55打卡
    java实验室管理系统
    CSS基本讲解与使用(详解)
    【网页设计】HTML+CSS保护野生动物北极熊介绍网页设计专题
    线程详细解析
    AWS认证SAA-C03每日一题
    数据库三范式
    论文解读-DeepEdit:使用纳米孔直接RNA测序对A - to - I RNA编辑事件进行单分子检测和阶段划分
  • 原文地址:https://blog.csdn.net/weixin_47077788/article/details/127966407