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

对_sbrk的未定义引用
EN

Stack Overflow用户
提问于 2011-04-23 13:25:30
回答 6查看 50.5K关注 0票数 22

我对_sbrk有个问题。在编译的链接阶段,我使用下面的comand链接我的对象,并获得了对_sbrk的未定义引用。

代码语言:javascript
复制
arm-none-eabi-ld -static -T linkerscript.ld -o exe timer_example.o /home/ziga/projects/cs_lite/arm-none-eabi/lib/libc.a /home/ziga/projects/cs_lite/lib/gcc/arm-none-eabi/4.5.1/libgcc.a

我正在编译arm926ej-s和ARM模式,所以我想我已经选择了正确的multilib (__、libc.alibgcc.a__),它位于文件夹home/ziga/projects/cs_lite/arm-none-eabi/lib/中。

我一直在网上搜索_sbrk函数,它是一种内存管理调用,它不包括在标准C库中,因为它依赖于微处理器。那么,我必须自己编写_sbrk函数吗?我该怎么做呢?您有arm926ej-s的例子吗?在编写这个函数之后,我打算将它编译成一个对象文件,并将它与其他对象库链接起来。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2021-04-22 16:41:58

我解决了这个问题,并会在这里发布解决方案,所以我会把一些东西回馈给comunity。函数_sbrk位于ARM的NXP包中。包可供下载(链接是为所有不知道这一点)的这里在子文件夹CDL_v005/csps/lpc313x/bsps/ea3131/source中,您将找到名为libnosys_gnu.c的源文件,该源文件应该添加到项目中并编译为对象文件,然后链接到其他对象和库中的可执行文件。

最美好的祝愿和许多成功。

票数 1
EN

Stack Overflow用户

发布于 2017-01-09 19:46:21

这有助于:

-mcpu=皮层-m4 -mthumb -specs=nano.specs -specs=nosys.specs -mfpu=fpv4 4-sp-d16-mfloat=hard

重要的开关“似乎”是:

-specs=nano.specs -specs=nosys.specs

票数 21
EN

Stack Overflow用户

发布于 2018-11-14 13:34:25

我也遇到了同样的问题,将它们添加到链接器标志中有助于:

代码语言:javascript
复制
-specs=nano.specs -specs=nosys.specs

另外,仅用nosys.specs解决了这个问题,但是代码的大小要大得多。

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

https://stackoverflow.com/questions/5764414

复制
相关文章

相似问题

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