sbrkr.c:(.text._sbrk_r+0xc): undefined reference to `_sbrk'

eclipse下编译stm32工程出错:

arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -O0 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -g3 -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER "-IC:\\cworkspace\\gps_gprs\\STM32F10x_StdPeriph_Lib_V3.5.0\\Libraries\\CMSIS\\CM3\\CoreSupport" "-IC:\\cworkspace\\gps_gprs\\STM32F10x_StdPeriph_Lib_V3.5.0\\Libraries\\STM32F10x_StdPeriph_Driver\\inc" "-IC:\\cworkspace\\gps_gprs\\STM32F10x_StdPeriph_Lib_V3.5.0\\Libraries\\CMSIS\\CM3\\DeviceSupport\\ST\\STM32F10x" "-IC:\\cworkspace\\gps_gprs\\include" "-IC:\\cworkspace\\gps_gprs\\user" "-IC:\\cworkspace\\gps_gprs\\user\\mqttpacket\\src" -std=gnu11 -c -o "src\\d_gprs.o" "..\\src\\d_gprs.c" 
arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -O0 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -g3 -T "C:\\cworkspace\\gps_gprs\\stm32_flash.ld" -Xlinker --gc-sections -Wl,-Map,gps_gprs.map -o gps_gprs.elf "STM32F10x_StdPeriph_Lib_V3.5.0\\Libraries\\CMSIS\\CM3\\CoreSupport\\core_cm3.o" "STM32F10x_StdPeriph_Lib_V3.5.0\\Libraries\\CMSIS\\CM3\\DeviceSupport\\ST\\STM32F10x\\system_stm32f10x.o" "STM32F10x_StdPeriph_Lib_V3.5.0\\Libraries\\STM32F10x_StdPeriph_Driver\\src\\misc.o" "STM32F10x_StdPeriph_Lib_V3.5.0\\Libraries\\STM32F10x_StdPeriph_Driver\\src\\stm32f10x_adc.o" "STM32F10x_StdPeriph_Lib_V3.5.0\\Libraries\\STM32F10x_StdPeriph_Driver\\src\\stm32f10x_bkp.o" "STM32F10x_StdPeriph_Lib_V3.5.0\\Libraries\\STM32F10x_StdPeriph_Driver\\src\\stm32f10x_can.o" "STM32F10x_StdPeriph_Lib_V3.5.0\\Libraries\\STM32F10x_StdPeriph_Driver\\src\\stm32f10x_cec.o" "STM32F10x_StdPeriph_Lib_V3.5.0\\Libraries\\STM32F10x_StdPeriph_Driver\\src\\stm32f10x_crc.o" "STM32F10x_StdPeriph_Lib_V3.5.0\\Libraries\\STM32F10x_StdPeriph_Driver\\src\\stm32f10x_dac.o" "STM32F10x_StdPeriph_Lib_V3.5.0\\Libraries\\STM32F10x_StdPeriph_Driver\\src\\stm32f10x_dbgmcu.o" "STM32F10x_StdPeriph_Lib_V3.5.0\\Libraries\\STM32F10x_StdPeriph_Driver\\src\\stm32f10x_dma.o" "STM32F10x_StdPeriph_Lib_V3.5.0\\Libraries\\STM32F10x_StdPeriph_Driver\\src\\stm32f10x_exti.o" "STM32F10x_StdPeriph_Lib_V3.5.0\\Libraries\\STM32F10x_StdPeriph_Driver\\src\\stm32f10x_flash.o" "STM32F10x_StdPeriph_Lib_V3.5.0\\Libraries\\STM32F10x_StdPeriph_Driver\\src\\stm32f10x_fsmc.o" "STM32F10x_StdPeriph_Lib_V3.5.0\\Libraries\\STM32F10x_StdPeriph_Driver\\src\\stm32f10x_gpio.o" "STM32F10x_StdPeriph_Lib_V3.5.0\\Libraries\\STM32F10x_StdPeriph_Driver\\src\\stm32f10x_i2c.o" "STM32F10x_StdPeriph_Lib_V3.5.0\\Libraries\\STM32F10x_StdPeriph_Driver\\src\\stm32f10x_iwdg.o" "STM32F10x_StdPeriph_Lib_V3.5.0\\Libraries\\STM32F10x_StdPeriph_Driver\\src\\stm32f10x_pwr.o" "STM32F10x_StdPeriph_Lib_V3.5.0\\Libraries\\STM32F10x_StdPeriph_Driver\\src\\stm32f10x_rcc.o" "STM32F10x_StdPeriph_Lib_V3.5.0\\Libraries\\STM32F10x_StdPeriph_Driver\\src\\stm32f10x_rtc.o" "STM32F10x_StdPeriph_Lib_V3.5.0\\Libraries\\STM32F10x_StdPeriph_Driver\\src\\stm32f10x_sdio.o" "STM32F10x_StdPeriph_Lib_V3.5.0\\Libraries\\STM32F10x_StdPeriph_Driver\\src\\stm32f10x_spi.o" "STM32F10x_StdPeriph_Lib_V3.5.0\\Libraries\\STM32F10x_StdPeriph_Driver\\src\\stm32f10x_tim.o" "STM32F10x_StdPeriph_Lib_V3.5.0\\Libraries\\STM32F10x_StdPeriph_Driver\\src\\stm32f10x_usart.o" "STM32F10x_StdPeriph_Lib_V3.5.0\\Libraries\\STM32F10x_StdPeriph_Driver\\src\\stm32f10x_wwdg.o" "src\\d_gnss.o" "src\\d_gprs.o" "src\\d_led.o" "src\\d_rfid.o" "src\\d_syscfg.o" "src\\d_timer.o" "src\\d_usart.o" "src\\d_wkup.o" "startup\\startup_stm32f10x_md.o" "user\\apply\\a_mqtte.o" "user\\apply\\a_transport.o" "user\\main.o" "user\\mqttpacket\\src\\MQTTConnectClient.o" "user\\mqttpacket\\src\\MQTTConnectServer.o" "user\\mqttpacket\\src\\MQTTDeserializePublish.o" "user\\mqttpacket\\src\\MQTTFormat.o" "user\\mqttpacket\\src\\MQTTPacket.o" "user\\mqttpacket\\src\\MQTTSerializePublish.o" "user\\mqttpacket\\src\\MQTTSubscribeClient.o" "user\\mqttpacket\\src\\MQTTSubscribeServer.o" "user\\mqttpacket\\src\\MQTTUnsubscribeClient.o" "user\\mqttpacket\\src\\MQTTUnsubscribeServer.o" "user\\stm32f10x_it.o" 
c:/gcc-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/5.2.1/../../../../arm-none-eabi/lib/armv7-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 1 exit status

15:37:10 Build Finished (took 1s.414ms)

用最笨的方法,一步一步的注释掉代码缩小范围找到原因是,

sprintf(buff,"AT+CIPSTART=\"TCP\",\"%s\",%d\r\n",addr,port); 这句代码造成的,

结合https://www.cnblogs.com/429512065qhq/p/10418998.html 博文中的解释,应该是底层sprintf()函数没有实现。

解决方法:下图箭头指示的地方打上勾

假如你的eclipse的这个地方没有这个Do not use syscalls的勾选,像下面这样,

可以在other linker flags后面的空白处填上--specs=nosys.specs,然后OK,再编译就可以了。这句话的意思是:使用静态库 libnosys.a

可以参考博文:https://blog.csdn.net/daxiebao/article/details/52651891

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值