当前位置: 首页 > news >正文

undefined reference to ‘end‘

相关问题:

一、undefined reference to `_exit

undefined reference to ‘end‘

warning: _close is not implemented and will always fail

一、环境:

ubuntu24.04实体机、

arm-none-eabi-gcc      gcc version 13.2.1 20231009 (15:13.2.rel1-2)

二、问题:

/usr/lib/gcc/arm-none-eabi/13.2.1/../../../arm-none-eabi/bin/ld: /usr/lib/gcc/arm-none-eabi/13.2.1/../../../arm-none-eabi/lib/libnosys.a(sbrk.o): in function `_sbrk':
/build/newlib-38V0JC/newlib-4.4.0.20231231/build/arm-none-eabi/libgloss/../../../libgloss/libnosys/sbrk.c:21:(.text+0x28): undefined reference to `end'

三、分析:

这个错误来自 newlib-nanolibnosys/sbrk.c,它试图使用符号 end 来初始化堆的起始地址,但你的链接器脚本里没有定义它。

符号名必须是 _end(带下划线),因为 sbrk.c 中用的是 extern char end;,而 GNU LD 默认会把 _endend 视为不同符号。

四、解决:

SECTIONS{
    . = 0;
    .text : {
        user/startup_hc32l13x.o
        *(.text)
    }
    .data : {
        *(.data)
    }
    .bss : {
        *(.bss)
    }
}

SECTIONS{
    . = 0;
    .text : {       /*写成 .text:{ 不对,要有空格。*/
        *(.text)    /*写成 *{.text} 不对,要为小括号。*/
    }
    .data : {
        *(.data)
    }
    .bss : {
        _sbss = .;         /* define a global symbol at bss start */
        __bss_start__ = _sbss;
        *(.bss)
        *(.bss*)
        *(COMMON)

        . = ALIGN(4);
        _ebss = .;         /* define a global symbol at bss end */
        __bss_end__ = _ebss;
        end    = .;
    }
}

添加 end    = .; 就好了

http://www.dtcms.com/a/288369.html

相关文章:

  • 从公共数据到医学研究:32 个生信数据库详解
  • [实战]巴特沃斯滤波器全流程解析:从数学原理到硬件实现
  • 磁盘阵列技术的功能与分类
  • 【面试题】大厂高压面经实录丨第三期
  • Python Pandas读取Excel表格中数据并根据时间字段筛选数据
  • 软件警告弹窗与兼容性问题
  • HD Video Converter Factory pro 高清视频转换器 v27.7.0 绿色中文便携版
  • centos7使用docker-compose部署项目
  • 《Linux 环境下 NTP 时间同步与 SSH 免密登录配置实战》
  • 树的基础知识总结
  • 移动硬盘无法读取怎么办?数据还可以抢救回来
  • STC增强型单片机寄存器 PWM EEPROM TMOD TCON
  • 数据结构的文件操作
  • scalelsd 笔记 线段识别 本地部署 模型架构
  • Spring7个事务传播行为和5个隔离级别
  • Java-Lambda表达式
  • 【Linux】Linux中重定向 及 dup2 详细讲解
  • Stream API
  • 2023 年 5 月青少年软编等考 C 语言八级真题解析
  • 本地安装部署Unstructured-api
  • ADC选型设计
  • SpringBoot项目打包加部署方案
  • Datawhale 7月学习
  • SCSAI工业智能体的核心特征
  • Xss-labs 1-8以及利用python自动sq8注入
  • linux cpu频率和AVS调压等级
  • 板子 5.29--7.19
  • 函数式编程和命令式编程
  • Python爬虫实战:研究psd-tools库相关技术
  • UI 程序退出卡顿问题分析:从真实案例深入理解退出清理路径负载问题