当前位置: 首页 > 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.xdnf.cn/news/1147303.html

相关文章:

  • webstorm的内置命令行工具没办法使用了怎么办
  • CSS-in-JSVue的解决方案
  • 深入理解DNS原理与服务的详细配置
  • 传统行业和AIGC的结合及应用
  • 计算机视觉:AI 的 “眼睛” 如何看懂世界?
  • 让 Windows 用上 macOS 的系统下载与保姆级使用教程
  • Spring Cloud Gateway与Envoy Sidecar在微服务请求路由中的架构设计分享
  • 云服务器磁盘IO性能优化的测试与配置方法
  • 大模型 Function Call 的实现步骤及示例详解
  • 6 STM32单片机的智能家居安防系统设计(STM32代码+手机APP设计+PCB设计+Proteus仿真)
  • 【Qt开发】Qt的背景介绍(三)-> 认识Qt Creator
  • 【C# in .NET】20. 探秘静态类:抽象与密封的结合体
  • 数学建模:运筹优化类问题
  • Python MCP与Excel增强智能:构建下一代数据处理和自动化解决方案
  • Ubuntu网卡驱动无效,不能连接wifi上网
  • 【2025/07/19】GitHub 今日热门项目
  • Jenkins自动化部署.NET应用实战:Docker+私有仓库+SSH远程发布
  • PostgreSQL常用命令与工具指南
  • OpenCV 官翻6 - Computational Photography
  • uniapp中报错:ReferenceError: FormData is not defined
  • LVS 集群技术实践:NAT 与 DR 模式的配置与对比
  • MySQL基础教程
  • OllyDbg技巧学习
  • 车载诊断架构 --- 故障码DTC严重等级定义
  • 【Unity编辑器开发GUI.Window】
  • Netty集群方案详解与实战(Zookeeper + Redis + RabbitMQ)
  • 如何用Python并发下载?深入解析concurrent.futures 与期物机制
  • 【密码学】1. 引言
  • 目标框的位置以及大小的分布
  • 题解:CF1617C Paprika and Permutation