首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >_sbrk在ChibiOS中的未定义引用

_sbrk在ChibiOS中的未定义引用
EN

Stack Overflow用户
提问于 2015-09-07 22:34:00
回答 1查看 3.1K关注 0票数 1

我正在使用ChibiOS 3.x编写一个嵌入式应用程序。在编译/链接它时,我会遇到如下错误消息:

代码语言:javascript
复制
/usr/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7e-m/libg.a(lib_a-sbrkr.o): In function `_sbrk_r':
sbrkr.c:(.text._sbrk_r+0xc): undefined reference to `_sbrk'

_sbrk是在哪里定义的,我如何解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-07 22:34:00

_sbrk是在os/various/syscalls.c中定义的,因此确保正确编译和链接该文件。

请注意,_sbrk将在CH_CFG_USE_MEMCORE == TRUE (您可以在chconf.h中更改)的情况下才正确工作。否则,malloc()总是返回0并得到errno of ENOMEM。还请参阅this answer,以获得对ENOMEM问题的更全面解释。

还请注意,对于嵌入式应用程序,特别是在获得高可靠性时,使用动态内存分配( _sbrk是其中的一部分)可能是不可取的(请参阅this detailed explanation)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32446814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档