hi,
准备升级到RTOS SDK v1.5版本,在进行工程编译的时候出现问题,cJSON.c使用了floor和pow两个方法,并且该文件#include <math.h>,但在链接的时候库中找不到这两个方法的定义,出现的错误如下:
/home/esp8266/Share/esp_iot_rtos_sdk-master/lib/libjson.a(cJSON.o):(.text.print_number+0x38):undefined reference to 'floor'
/home/esp8266/Share/esp_iot_rtos_sdk-master/lib/libjson.a(cJSON.o):(.text.print_number+0x10):undefined reference to 'pow'
这样类似的错误。RTOS SDK v1.4版本也有这样的问题。但在旧的JSON版本中没有使用floor和pow这两个方法,所以没有出现问题。
请问如何解决这个问题?
'
升级到RTOS SDK v1.5版本编译出现的问题
Re: 升级到RTOS SDK v1.5版本编译出现的问题
Postby ESP_Xutao » Fri Nov 25, 2016 11:23 am
你好:
这个主要是在前版本的esp8266_iot_platform对现在的RTOS V1.5缺少了C库,主要在Makefile中修改一下,将Makefile中的-lminic替换成-lcirom和-lmirom,还有在esp8266_iot_platform中的user_main.c加入32 user_rf_cal_sector_set()函数,我们的官网esp8266_iot_platform已有更新的。
uint32 user_rf_cal_sector_set(void)
{
flash_size_map size_map = system_get_flash_size_map();
uint32 rf_cal_sec = 0;
switch (size_map) {
case FLASH_SIZE_4M_MAP_256_256:
rf_cal_sec = 128 - 5;
break;
case FLASH_SIZE_8M_MAP_512_512:
rf_cal_sec = 256 - 5;
break;
case FLASH_SIZE_16M_MAP_512_512:
case FLASH_SIZE_16M_MAP_1024_1024:
rf_cal_sec = 512 - 5;
break;
case FLASH_SIZE_32M_MAP_512_512:
case FLASH_SIZE_32M_MAP_1024_1024:
rf_cal_sec = 1024 - 5;
break;
default:
rf_cal_sec = 0;
break;
}
return rf_cal_sec;
}
谢谢对ESP8266的关注。
这个主要是在前版本的esp8266_iot_platform对现在的RTOS V1.5缺少了C库,主要在Makefile中修改一下,将Makefile中的-lminic替换成-lcirom和-lmirom,还有在esp8266_iot_platform中的user_main.c加入32 user_rf_cal_sector_set()函数,我们的官网esp8266_iot_platform已有更新的。
uint32 user_rf_cal_sector_set(void)
{
flash_size_map size_map = system_get_flash_size_map();
uint32 rf_cal_sec = 0;
switch (size_map) {
case FLASH_SIZE_4M_MAP_256_256:
rf_cal_sec = 128 - 5;
break;
case FLASH_SIZE_8M_MAP_512_512:
rf_cal_sec = 256 - 5;
break;
case FLASH_SIZE_16M_MAP_512_512:
case FLASH_SIZE_16M_MAP_1024_1024:
rf_cal_sec = 512 - 5;
break;
case FLASH_SIZE_32M_MAP_512_512:
case FLASH_SIZE_32M_MAP_1024_1024:
rf_cal_sec = 1024 - 5;
break;
default:
rf_cal_sec = 0;
break;
}
return rf_cal_sec;
}
谢谢对ESP8266的关注。
Who is online
Users browsing this forum: No registered users and 58 guests
Login
Newbies Start Here
Are you new to ESP8266?
Unsure what to do?
Dunno where to start?
Start right here!
Latest SDK
Documentation
Complete listing of the official ESP8266 related documentation release by ESPRESSIF!
Must read here!
- All times are UTC+08:00
-
- All times are UTC+08:00
- Top
- Delete all board cookies
- Top
- Delete all board cookies
About Us
Espressif Systems is a fabless semiconductor company providing cutting-edge low power WiFi SoCs and wireless solutions for wireless communications and Internet of Things applications. We are the manufacturer of ESP8266EX.