eclipse中编译出现错误undefined reference to `_sbrk'
1. 在eclipse中使用gcc-arm-none-eabi-7-2017-q4-major-win32编译代码的时候出现了undefined reference to `_sbrk'
e:/proj_1/34_hauwei-baudio/gcc-arm-none-eabi---q4-major-win32/bin/../lib/gcc/arm-none-eabi/7.2./
../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-sbrkr.o): In function `_sbrk_r':
sbrkr.c:(.text._sbrk_r+0xc): undefined reference to `_sbrk'
collect2.exe: error: ld returned exit status
2. 经过查找发现是底层的atof函数没有实现,只有声明
extern double atof(const char *nptr);
3. 添加上atof的函数原型,从百度搜了一个代码加进去,问题解决
double atof(const char *s)
{
double power,value;
int i=;
int sign=;
//assert(s!=NULL);//判断字符串是否为空
//for(i=0;is_space(s[i]);i++);//除去字符串前的空格
sign=(s[i]=='-')?-:;
if(s[i]=='-'||s[i]=='+')//要是有符号位就前进一位
i++;
for(value=0.0;isdigit((int)s[i]);i++)//计算小数点前的数字
value=value*10.0+(s[i]-'');
if(s[i]=='.')
i++;
for(power=1.0;isdigit((int)s[i]);i++)//计算小数点后的数字
{
value=value*10.0+(s[i]-'');
power*=10.0;
}
return sign*value/power;
}
4. 解决过程,刚开始不太懂什么问题,以为是代码整合有问题,重试了几次,大致百度下,知道应该是上层应用调用了某个标准的C库函数,但是底层缺少某个函数,但是一直没搞明白是gcc-arm-none-eabi-的函数库缺少这个函数,还是我的代码缺少这个函数,只能去搜这几个函数malloc,free,realloc,printf等函数,以为是缺少这几个函数导致的,然后去搜索整个工程,发现好像没啥问题。只能从其他方向着手
5. 关键这个错误提示太变态了,完全看不出导致是少了那个函数啊!然后去gcc-arm-none-eabi-的源代码里面看了一下,sbrkr.c可惜没找到这个C文件,有点懵逼,不懂什么幺蛾子,只能用笨办法一个个C文件硬看,看是不是有啥诡异的函数,遇到觉得可能有毛病的地方都先改着试一试,直到看到这个atof这个函数,想起来以前需要添加这个函数来着,先查一下,是没有原型,只有声明,就先加上试试,然后就可以了
6. 总结起来,这个错误提示实在是无法联想到缺少atof函数,这问题不好解决。
eclipse中编译出现错误undefined reference to `_sbrk'的更多相关文章
- eclipse中编译时enum出现cannot be resolved to a type错误
eclipse中编译时enum出现cannot be resolved to a type错误 通常是因为eclise使用的jdk版本的问题...默认是使用的是jdk1.5 应该去选择成jdk1.6或 ...
- 解决错误---undefined reference to `pthread_create‘
今天试着敲了一下APUE的小例子,遇到了个错误 ----- undefined reference to `pthread_create.(为自己这么晚接触多线程惭愧). 上网上查了一下,借人经验. ...
- 错误 undefined reference to __cxa_guard_acquire/release
用gcc编译 c++ 程序时,出现错误 undefined reference to __cxa_guard_acquire linker error, 但是用icc可以正常编译, 问题出在stati ...
- [转载]解决linux 下多线程错误 undefined reference to `sem_init'
转自:https://blog.csdn.net/yzycqu/article/details/7396498?utm_source=copy 解决linux 下多线程错误 undefined ref ...
- 在Eclipse中编译maven项目出的问题
在Eclipse中编译Maven项目,运行 jetty:run 指令的时候会出错,在 JRE选项卡中加入: -Dorg.mortbay.util.URI.charset=GBK-Xms512m -Xm ...
- undefined reference to `_sbrk', `_write', `_lseek', `_read'
现象: 在用GCC编译嵌入式MCU程序时,由于使用了第三方的库,出现了类似undefined reference to `_sbrk', `_write', `_lseek', `_read'的连接错 ...
- Android编译错误——undefined reference to
[错误描述] 未定义引用 提示如下:bootable/recovery/minzip/Zip.c:1122: error: undefined reference to 'selabel_lookup ...
- 编译3.10内核 出现错误 “undefined reference to...." 解决方法
向内核中加入C文件后.假设想编译进内核须要改动当前文件夹下的Kconfig文件和Makefile文件. 如:加入一个test.c文件到driver文件夹下,则须要改动Kconfig文件: config ...
- Windows编译OpenCV4Android解决undefined reference to std错误
注意OpenCV 4.0.1 解决了这个问题请直接下载OpenCV 4.0.1 但是OpenCV 4.0.1作为模块导入Android Studio会有找不到R.styleable的问题 OpenCV ...
随机推荐
- ajax上传表单的俩种方式
1.用h5对象上传表单(图片) var formData = new FormData(); formData.append("authenticity_token", '1212 ...
- PHP去重可用
//国外 $arr6 = array_merge($arr2,$arr4); $arr8 = array(); $arr10 = array(); foreach($arr6 as $k6=> ...
- ASP.Net GridView 基础 绑定字段
通过以前的学习,我们实现了效果如下: 现在我想修改显示/隐藏部分列,有两种做法: 一.在配置数据源的时候不是有查询哪些字段的吗,去除不需要的字段,重新绑定. 二.就是直接编辑列 下面是分析每种字段类型 ...
- 编译nginx错误:make[1]: *** [/pcre//Makefile] Error 127
--with-pcre=DIR 是设置源码目录,而不是编译安装后的目录.
- JavaScript this用法
当this为全局变量时,this为window对象 <script> // 在全局变量中,this为window window.onload= function(){ alert(wind ...
- 微服务之配置中心ConfigKeeper
在微服务架构中,配置中心是必不可少的基础服务.ConfigKeeper已开源,本文将深度分析配置中心的核心内容,错过「Spring Cloud中国社区北京沙龙-2018.10.28 」的同学将从本篇文 ...
- Python 学习笔记(十四)Python类(三)
完善类的内容 示例: #! /usr/bin/env python # coding =utf-8 #通常类名首字母大写 class Person(object): """ ...
- HTTPweb服务器——HTTP基本知识
对于HTTP来说,我们不需要说太多,HTTP又叫做超文本传输协议,现如今利用最多的版本是1.1版本. HTTP的特点:C/S模式,B/S模式 简单快速:基于请求和响应,请求只需要传送请求方法和路径. ...
- RunLoop 之初探
你好2019!一起努力呀! 1.什么是runloop runloop是通过内部维护的事件循环对事件/消息进行管理的一个对象. 事件循环(Event loop):通俗的解释:没有消息处理的时候,休眠以避 ...
- golang总结-Redis整合
目录 1. 基本用法 2. Redis连接池 go get github.com/gomodule/redigo/redis 1. 基本用法 获取连接 package conn import ( &q ...