首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >esp-gdbstub编译错误

esp-gdbstub编译错误
EN

Stack Overflow用户
提问于 2019-02-11 12:19:31
回答 1查看 408关注 0票数 0

我正在尝试使用esp-gdbstub来调试编写来控制mod use 8266-dev的代码。这是我的原始makefile:

代码语言:javascript
复制
#You can build this example in three ways:
# 'separate' - Separate espfs and binaries, no OTA upgrade
# 'combined' - Combined firmware blob, no OTA upgrade
# 'ota' - Combined firmware blob with OTA upgrades.
#Please do a 'make clean' after changing this.
OUTPUT_TYPE=separate
#OUTPUT_TYPE=combined
#OUTPUT_TYPE=ota

#SPI flash size, in K
ESP_SPI_FLASH_SIZE_K=1024
#0: QIO, 1: QOUT, 2: DIO, 3: DOUT
ESP_FLASH_MODE=0
#0: 40MHz, 1: 26MHz, 2: 20MHz, 15: 80MHz
ESP_FLASH_FREQ_DIV=0


ifeq ("$(OUTPUT_TYPE)","separate")
#In case of separate ESPFS and binaries, set the pos and length of the ESPFS here. 
ESPFS_POS = 0x18000
ESPFS_SIZE = 0x28000
endif

# Output directors to store intermediate compiled files
# relative to the project directory
BUILD_BASE  = build
FW_BASE     = firmware

# Base directory for the compiler. Needs a / at the end; if not set it'll use the tools that are in
# the PATH.
XTENSA_TOOLS_ROOT ?= /Volumes/case-sensitive/esp-open-sdk/xtensa-lx106-elf/bin/

# base directory of the ESP8266 SDK package, absolute
#SDK_BASE   ?= /Volumes/case-sensitive/esp-open-sdk/sdk
SDK_BASE = /Users/halasz/Projects/Iskola/Mgr/Lienka/esp_iot_sdk_v1.4.0

# Opensdk patches stdint.h when compiled with an internal SDK. If you run into compile problems pertaining to
# redefinition of int types, try setting this to 'yes'.
USE_OPENSDK?=no

#Esptool.py path and port
ESPTOOL     ?= /Volumes/case-sensitive/esp-open-sdk/xtensa-lx106-elf/bin/esptool.py
ESPPORT     ?= /dev/cu.usbserial
#ESPPORT        ?= /dev/cu.SLAB_USBtoUART
#ESPDELAY indicates seconds to wait between flashing the two binary images
ESPDELAY    ?= 3
ESPBAUD     ?= 460800

#Appgen path and name
APPGEN      ?= $(SDK_BASE)/tools/gen_appbin.py

# name for the target project
TARGET      = httpd

# which modules (subdirectories) of the project to include in compiling
MODULES     = mdns driver user
EXTRA_INCDIR    = include libesphttpd/include library

# libraries used in this project, mainly provided by the SDK
LIBS        = c gcc hal phy pp net80211 wpa main lwip crypto
#Add in esphttpd lib
LIBS += esphttpd

# compiler flags using during compilation of source files
CFLAGS      = -Os -ggdb -std=gnu99 -Wpointer-arith -Wundef -Wall -Wl,-EL -fno-inline-functions \
        -nostdlib -mlongcalls -mtext-section-literals  -D__ets__ -DICACHE_FLASH \
        -Wno-address

# linker flags used to generate the main object file
LDFLAGS     = -nostdlib -Wl,--no-check-sections -u call_user_start -Wl,-static


# various paths from the SDK used in this project
SDK_LIBDIR  = lib
SDK_LDDIR   = ld
SDK_INCDIR  = include include/json

# select which tools to use as compiler, librarian and linker
CC      := $(XTENSA_TOOLS_ROOT)xtensa-lx106-elf-gcc
AR      := $(XTENSA_TOOLS_ROOT)xtensa-lx106-elf-ar
LD      := $(XTENSA_TOOLS_ROOT)xtensa-lx106-elf-gcc
OBJCOPY := $(XTENSA_TOOLS_ROOT)xtensa-lx106-elf-objcopy

#Additional (maybe generated) ld scripts to link in
EXTRA_LD_SCRIPTS:=


####
#### no user configurable options below here
####
SRC_DIR     := $(MODULES)
BUILD_DIR   := $(addprefix $(BUILD_BASE)/,$(MODULES))

SDK_LIBDIR  := $(addprefix $(SDK_BASE)/,$(SDK_LIBDIR))
SDK_INCDIR  := $(addprefix -I$(SDK_BASE)/,$(SDK_INCDIR))

SRC     := $(foreach sdir,$(SRC_DIR),$(wildcard $(sdir)/*.c))
ASMSRC      = $(foreach sdir,$(SRC_DIR),$(wildcard $(sdir)/*.S))
OBJ     = $(patsubst %.c,$(BUILD_BASE)/%.o,$(SRC))
OBJ     += $(patsubst %.S,$(BUILD_BASE)/%.o,$(ASMSRC))
APP_AR      := $(addprefix $(BUILD_BASE)/,$(TARGET)_app.a)


V ?= $(VERBOSE)
ifeq ("$(V)","1")
Q :=
vecho := @true
else
Q := @
vecho := @echo
endif

ifeq ("$(USE_OPENSDK)","yes")
CFLAGS      += -DUSE_OPENSDK
else
CFLAGS      += -D_STDINT_H
endif

ifeq ("$(GZIP_COMPRESSION)","yes")
CFLAGS      += -DGZIP_COMPRESSION
endif

ifeq ("$(USE_HEATSHRINK)","yes")
CFLAGS      += -DESPFS_HEATSHRINK
endif

ifeq ("$(ESPFS_POS)","")
#No hardcoded espfs position: link it in with the binaries.
LIBS += webpages-espfs
else
#Hardcoded espfs location: Pass espfs position to rest of code
CFLAGS += -DESPFS_POS=$(ESPFS_POS) -DESPFS_SIZE=$(ESPFS_SIZE)
endif

ifeq ("$(OUTPUT_TYPE)","ota")
CFLAGS += -DOTA_FLASH_SIZE_K=$(ESP_SPI_FLASH_SIZE_K)
endif


#Define default target. If not defined here the one in the included Makefile is used as the default one.
default-tgt: all

define maplookup
$(patsubst $(strip $(1)):%,%,$(filter $(strip $(1)):%,$(2)))
endef


#Include options and target specific to the OUTPUT_TYPE
include Makefile.$(OUTPUT_TYPE)

#Add all prefixes to paths
LIBS        := $(addprefix -l,$(LIBS))
ifeq ("$(LD_SCRIPT_USR1)", "")
LD_SCRIPT   := $(addprefix -T$(SDK_BASE)/$(SDK_LDDIR)/,$(LD_SCRIPT))
else
LD_SCRIPT_USR1  := $(addprefix -T$(SDK_BASE)/$(SDK_LDDIR)/,$(LD_SCRIPT_USR1))
LD_SCRIPT_USR2  := $(addprefix -T$(SDK_BASE)/$(SDK_LDDIR)/,$(LD_SCRIPT_USR2))
endif
INCDIR  := $(addprefix -I,$(SRC_DIR))
EXTRA_INCDIR    := $(addprefix -I,$(EXTRA_INCDIR))
MODULE_INCDIR   := $(addsuffix /include,$(INCDIR))

ESP_FLASH_SIZE_IX=$(call maplookup,$(ESP_SPI_FLASH_SIZE_K),512:0 1024:2 2048:5 4096:6)
ESPTOOL_FREQ=$(call maplookup,$(ESP_FLASH_FREQ_DIV),0:40m 1:26m 2:20m 0xf:80m 15:80m)
ESPTOOL_MODE=$(call maplookup,$(ESP_FLASH_MODE),0:qio 1:qout 2:dio 3:dout)
ESPTOOL_SIZE=$(call maplookup,$(ESP_SPI_FLASH_SIZE_K),512:4m 256:2m 1024:8m 2048:16m 4096:322m-c1)

ESPTOOL_OPTS=--port $(ESPPORT) --baud $(ESPBAUD)
ESPTOOL_FLASHDEF=--flash_freq $(ESPTOOL_FREQ) --flash_mode $(ESPTOOL_MODE) --flash_size $(ESPTOOL_SIZE)

vpath %.c $(SRC_DIR)
vpath %.S $(SRC_DIR)

define compile-objects
$1/%.o: %.c
    $(vecho) "CC $$<"
    $(Q) $(CC) $(INCDIR) $(MODULE_INCDIR) $(EXTRA_INCDIR) $(SDK_INCDIR) $(CFLAGS)  -c $$< -o $$@

$1/%.o: %.S
    $(vecho) "CC $$<"
    $(Q) $(CC) $(INCDIR) $(MODULE_INCDIR) $(EXTRA_INCDIR) $(SDK_INCDIR) $(CFLAGS)  -c $$< -o $$@
endef

.PHONY: all checkdirs clean libesphttpd default-tgt

all: checkdirs $(TARGET_OUT) $(FW_BASE)

libesphttpd/Makefile:
    $(Q) echo "No libesphttpd submodule found. Using git to fetch it..."
    $(Q) git submodule init
    $(Q) git submodule update

libesphttpd: libesphttpd/Makefile
    $(Q) make -C libesphttpd USE_OPENSDK=$(USE_OPENSDK)

$(APP_AR): libesphttpd $(OBJ)
    $(vecho) "AR $@"
    $(Q) $(AR) cru $@ $(OBJ)

checkdirs: $(BUILD_DIR)

$(BUILD_DIR):
    $(Q) mkdir -p $@

clean:
    $(Q) make -C libesphttpd clean
    $(Q) rm -f $(APP_AR)
    $(Q) rm -f $(TARGET_OUT)
    $(Q) find $(BUILD_BASE) -type f | xargs rm -f
    $(Q) rm -rf $(FW_BASE)


$(foreach bdir,$(BUILD_DIR),$(eval $(call compile-objects,$(bdir))))

我试着遵循用法部分的说明:

  • 获取gdbstub项目,并将文件放在项目中名为“gdbstub”的目录中。您可以通过签出Git,或者将Git作为子模块添加到您的项目中,如果它已经在Git中的话。(完成)
  • 修改生成文件。您需要包含gdbstub源代码:如果Makefile的结构与Espressif示例中的结构类似,则可以将gdbstub添加到SUBDIRS定义中,将gdbstub/libgdbstub.a添加到COMPONENTS_eagle.app.v6定义中。此外,您可能希望将-ggdb添加到编译器标志(TARGET_LDFLAGS)中,如果正在调试,则将任何优化标志(-Os、-O2等)更改为-Og。最后,确保Makefile也编译.S文件。

问题来了。我没有SUBDIRS定义,但我找到了行

代码语言:javascript
复制
MODULES     = mdns driver user

所以,也许在这里的末尾,我应该像这样添加gdbstub吗?

代码语言:javascript
复制
MODULES     = mdns driver user gdbstub

我没有找到类似COMPONENTS_eagle.app.v6的东西,所以我不知道把gdbstub/libgdbstub.a放在哪里。-ggdbCFLAGS (非TARGET_LDFLAGS)中有过,在CFLAGS中也有-Os,因此将其更改为-Og

  • 通过编辑gdbstub-cfg.h来配置gdbstub。您可以调整许多选项: FreeRTOS或bare SDK、私有异常/断点堆栈、控制台重定向到GDB、等待调试器附件等。还可以通过在生成文件中包含适当的-Dwhatever gcc标志来配置这些选项。(没有在此文件中更改任何内容)

gdbstub-cfg.h:

代码语言:javascript
复制
#ifndef GDBSTUB_CFG_H
#define  GDBSTUB_CFG_H

/*
Enable this define if you're using the RTOS SDK. It will use a custom exception handler instead of the HAL
and do some other magic to make everything work and compile under FreeRTOS.
*/
#ifndef GDBSTUB_FREERTOS
#define GDBSTUB_FREERTOS 1
#endif

/*
Enable this to make the exception and debugging handlers switch to a private stack. This will use 
up 1K of RAM, but may be useful if you're debugging stack or stack pointer corruption problems. It's
normally disabled because not many situations need it. If for some reason the GDB communication 
stops when you run into an error in your code, try enabling this.
*/
#ifndef GDBSTUB_USE_OWN_STACK
#define GDBSTUB_USE_OWN_STACK 0
#endif

/*
If this is defined, gdbstub will break the program when you press Ctrl-C in gdb. it does this by
hooking the UART interrupt. Unfortunately, this means receiving stuff over the serial port won't
work for your program anymore. This will fail if your program sets an UART interrupt handler after
the gdbstub_init call.
*/
#ifndef GDBSTUB_CTRLC_BREAK
#define GDBSTUB_CTRLC_BREAK 1
#endif

/*
Enabling this will redirect console output to GDB. This basically means that printf/os_printf output 
will show up in your gdb session, which is useful if you use gdb to do stuff. It also means that if
you use a normal terminal, you can't read the printfs anymore.
*/
#ifndef GDBSTUB_REDIRECT_CONSOLE_OUTPUT
#define GDBSTUB_REDIRECT_CONSOLE_OUTPUT 1
#endif

/*
Enable this if you want the GDB stub to wait for you to attach GDB before running. It does this by
breaking in the init routine; use the gdb 'c' command (continue) to start the program.
*/
#ifndef GDBSTUB_BREAK_ON_INIT
#define GDBSTUB_BREAK_ON_INIT 1
#endif

/*
Function attributes for function types.
Gdbstub functions are placed in flash or IRAM using attributes, as defined here. The gdbinit function
(and related) can always be in flash, because it's called in the normal code flow. The rest of the
gdbstub functions can be in flash too, but only if there's no chance of them being called when the
flash somehow is disabled (eg during SPI operations or flash write/erase operations). If the routines
are called when the flash is disabled (eg due to a Ctrl-C at the wrong time), the ESP8266 will most 
likely crash.
*/
#define ATTR_GDBINIT    ICACHE_FLASH_ATTR
#ifndef ATTR_GDBFN
#define ATTR_GDBFN      
#endif

#endif
  • 在您的user_main.c中,添加一个#include <../gdbstub/gdbstub.h>并在user_main中的某个地方调用gdbstub_init();(完成)
  • 编译和闪光你的板。(编译问题)

在编译程序时,它向我展示了许多错误:

代码语言:javascript
复制
AR libesphttpd.a
wifi/wifi.tpl (55%, heatshrink)
wifi/.DS_Store (15%, heatshrink)
wifi/140medley.min.js (74%, heatshrink)
wifi/connecting.html (61%, heatshrink)
wifi/icons.png (100%, none)
wifi/style.css (73%, heatshrink)
index.tpl (68%, heatshrink)
websocket/index.html (52%, heatshrink)
cats/.DS_Store (15%, heatshrink)
.DS_Store (16%, heatshrink)
test/index.html (72%, heatshrink)
test/test.js (38%, heatshrink)
lienkaweb/index.html (38%, heatshrink)
lienkaweb/images/up.png (100%, none)
lienkaweb/images/down.png (100%, none)
lienkaweb/images/up_hover.png (100%, none)
lienkaweb/images/left.png (100%, none)
lienkaweb/images/left_hover.png (100%, none)
lienkaweb/images/down_hover.png (100%, none)
lienkaweb/images/right_hover.png (100%, none)
lienkaweb/images/right.png (100%, none)
lienkaweb/script.js (21%, heatshrink)
lienkaweb/style.css (44%, heatshrink)
flash/index.html (54%, heatshrink)
flash/140medley.min.js (74%, heatshrink)
flash/style.css (59%, heatshrink)
style.css (78%, heatshrink)
led.tpl (72%, heatshrink)
AR build/httpd_app.a
GEN ldscript_memspecific.ld
LD build/httpd.out
/Volumes/case-sensitive/esp-open-sdk/xtensa-lx106-elf/lib/gcc/xtensa-lx106-elf/4.8.5/../../../../xtensa-lx106-elf/bin/ld:ldscript_memspecific.ld:1: warning: redeclaration of memory region `irom0_0_seg'
/Volumes/case-sensitive/esp-open-sdk/xtensa-lx106-elf/lib/gcc/xtensa-lx106-elf/4.8.5/../../../../xtensa-lx106-elf/bin/ld: build/httpd.out section `.text' will not fit in region `iram1_0_seg'
build/httpd_app.a(gdbstub.o):(.irom0.text+0x4): undefined reference to `user_fatal_exception_handler'
build/httpd_app.a(gdbstub.o): In function `install_exceptions':
gdbstub.c:(.irom0.text+0x28): undefined reference to `_xt_isr_attach'
gdbstub.c:(.irom0.text+0x2c): undefined reference to `_xt_isr_unmask'
build/httpd_app.a(gdbstub.o): In function `install_uart_hdlr':
/Users/halasz/Projects/Iskola/Mgr/Lienka-esphttpd/esphttpd/gdbstub/gdbstub.c:762: undefined reference to `_xt_isr_attach'
/Users/halasz/Projects/Iskola/Mgr/Lienka-esphttpd/esphttpd/gdbstub/gdbstub.c:764: undefined reference to `_xt_isr_unmask'
/Users/halasz/Projects/Iskola/Mgr/Lienka-esphttpd/esphttpd/gdbstub/gdbstub.c:765: undefined reference to `os_install_putc1'
build/httpd_app.a(gdbstub.o): In function `gdbstub_init':
/Users/halasz/Projects/Iskola/Mgr/Lienka-esphttpd/esphttpd/gdbstub/gdbstub.c:776: undefined reference to `os_install_putc1'
/Volumes/case-sensitive/esp-open-sdk/xtensa-lx106-elf/lib/gcc/xtensa-lx106-elf/4.8.5/../../../../xtensa-lx106-elf/lib/libc.a(lib_a-wsetup.o):(.literal+0x0): undefined reference to `_free_r'
/Volumes/case-sensitive/esp-open-sdk/xtensa-lx106-elf/lib/gcc/xtensa-lx106-elf/4.8.5/../../../../xtensa-lx106-elf/lib/libc.a(lib_a-wsetup.o): In function `__swsetup_r':
/Volumes/case-sensitive/esp-open-sdk/crosstool-NG/.build/src/newlib-2.0.0/newlib/libc/stdio/wsetup.c:57: undefined reference to `_free_r'
/Volumes/case-sensitive/esp-open-sdk/xtensa-lx106-elf/lib/gcc/xtensa-lx106-elf/4.8.5/../../../../xtensa-lx106-elf/lib/libc.a(lib_a-fflush.o): In function `__sflush_r':
/Volumes/case-sensitive/esp-open-sdk/crosstool-NG/.build/src/newlib-2.0.0/newlib/libc/stdio/fflush.c:162: undefined reference to `_free_r'
/Volumes/case-sensitive/esp-open-sdk/xtensa-lx106-elf/lib/gcc/xtensa-lx106-elf/4.8.5/../../../../xtensa-lx106-elf/lib/libc.a(lib_a-findfp.o):(.literal+0x4): undefined reference to `_malloc_r'
/Volumes/case-sensitive/esp-open-sdk/xtensa-lx106-elf/lib/gcc/xtensa-lx106-elf/4.8.5/../../../../xtensa-lx106-elf/lib/libc.a(lib_a-findfp.o): In function `__sfmoreglue':
/Volumes/case-sensitive/esp-open-sdk/crosstool-NG/.build/src/newlib-2.0.0/newlib/libc/stdio/findfp.c:88: undefined reference to `_malloc_r'
/Volumes/case-sensitive/esp-open-sdk/xtensa-lx106-elf/lib/gcc/xtensa-lx106-elf/4.8.5/../../../../xtensa-lx106-elf/lib/libc.a(lib_a-makebuf.o):(.literal+0x8): undefined reference to `_fstat_r'
/Volumes/case-sensitive/esp-open-sdk/xtensa-lx106-elf/lib/gcc/xtensa-lx106-elf/4.8.5/../../../../xtensa-lx106-elf/lib/libc.a(lib_a-makebuf.o): In function `__smakebuf_r':
/Volumes/case-sensitive/esp-open-sdk/crosstool-NG/.build/src/newlib-2.0.0/newlib/libc/stdio/makebuf.c:59: undefined reference to `_fstat_r'
/Volumes/case-sensitive/esp-open-sdk/crosstool-NG/.build/src/newlib-2.0.0/newlib/libc/stdio/makebuf.c:95: undefined reference to `_malloc_r'
/Volumes/case-sensitive/esp-open-sdk/xtensa-lx106-elf/lib/gcc/xtensa-lx106-elf/4.8.5/../../../../xtensa-lx106-elf/lib/libc.a(lib_a-stdio.o):(.literal+0x0): undefined reference to `_read_r'
/Volumes/case-sensitive/esp-open-sdk/xtensa-lx106-elf/lib/gcc/xtensa-lx106-elf/4.8.5/../../../../xtensa-lx106-elf/lib/libc.a(lib_a-stdio.o):(.literal+0x4): undefined reference to `_lseek_r'
/Volumes/case-sensitive/esp-open-sdk/xtensa-lx106-elf/lib/gcc/xtensa-lx106-elf/4.8.5/../../../../xtensa-lx106-elf/lib/libc.a(lib_a-stdio.o):(.literal+0x8): undefined reference to `_write_r'
/Volumes/case-sensitive/esp-open-sdk/xtensa-lx106-elf/lib/gcc/xtensa-lx106-elf/4.8.5/../../../../xtensa-lx106-elf/lib/libc.a(lib_a-stdio.o):(.literal+0xc): undefined reference to `_close_r'
/Volumes/case-sensitive/esp-open-sdk/xtensa-lx106-elf/lib/gcc/xtensa-lx106-elf/4.8.5/../../../../xtensa-lx106-elf/lib/libc.a(lib_a-stdio.o): In function `__sread':
/Volumes/case-sensitive/esp-open-sdk/crosstool-NG/.build/src/newlib-2.0.0/newlib/libc/stdio/stdio.c:48: undefined reference to `_read_r'
/Volumes/case-sensitive/esp-open-sdk/xtensa-lx106-elf/lib/gcc/xtensa-lx106-elf/4.8.5/../../../../xtensa-lx106-elf/lib/libc.a(lib_a-stdio.o): In function `__swrite':
/Volumes/case-sensitive/esp-open-sdk/crosstool-NG/.build/src/newlib-2.0.0/newlib/libc/stdio/stdio.c:89: undefined reference to `_lseek_r'
/Volumes/case-sensitive/esp-open-sdk/crosstool-NG/.build/src/newlib-2.0.0/newlib/libc/stdio/stdio.c:97: undefined reference to `_write_r'
/Volumes/case-sensitive/esp-open-sdk/xtensa-lx106-elf/lib/gcc/xtensa-lx106-elf/4.8.5/../../../../xtensa-lx106-elf/lib/libc.a(lib_a-stdio.o): In function `__sseek':
/Volumes/case-sensitive/esp-open-sdk/crosstool-NG/.build/src/newlib-2.0.0/newlib/libc/stdio/stdio.c:117: undefined reference to `_lseek_r'
/Volumes/case-sensitive/esp-open-sdk/xtensa-lx106-elf/lib/gcc/xtensa-lx106-elf/4.8.5/../../../../xtensa-lx106-elf/lib/libc.a(lib_a-stdio.o): In function `__sclose':
/Volumes/case-sensitive/esp-open-sdk/crosstool-NG/.build/src/newlib-2.0.0/newlib/libc/stdio/stdio.c:135: undefined reference to `_close_r'
/Volumes/case-sensitive/esp-open-sdk/xtensa-lx106-elf/lib/gcc/xtensa-lx106-elf/4.8.5/../../../../xtensa-lx106-elf/lib/libc.a(isatty.o): In function `_isatty_r':
/Volumes/case-sensitive/esp-open-sdk/crosstool-NG/.build/src/newlib-2.0.0/newlib/libc/sys/xtensa/isatty.c:13: undefined reference to `_fstat_r'
/Volumes/case-sensitive/esp-open-sdk/xtensa-lx106-elf/lib/gcc/xtensa-lx106-elf/4.8.5/../../../../xtensa-lx106-elf/lib/libc.a(lib_a-fclose.o): In function `_fclose_r':
/Volumes/case-sensitive/esp-open-sdk/crosstool-NG/.build/src/newlib-2.0.0/newlib/libc/stdio/fclose.c:102: undefined reference to `_free_r'
/Volumes/case-sensitive/esp-open-sdk/crosstool-NG/.build/src/newlib-2.0.0/newlib/libc/stdio/fclose.c:104: undefined reference to `_free_r'
/Volumes/case-sensitive/esp-open-sdk/crosstool-NG/.build/src/newlib-2.0.0/newlib/libc/stdio/fclose.c:106: undefined reference to `_free_r'
/Volumes/case-sensitive/esp-open-sdk/xtensa-lx106-elf/lib/gcc/xtensa-lx106-elf/4.8.5/../../../../xtensa-lx106-elf/lib/libc.a(lib_a-fvwrite.o):(.literal+0x0): undefined reference to `_realloc_r'
/Volumes/case-sensitive/esp-open-sdk/xtensa-lx106-elf/lib/gcc/xtensa-lx106-elf/4.8.5/../../../../xtensa-lx106-elf/lib/libc.a(lib_a-fvwrite.o): In function `__sfvwrite_r':
/Volumes/case-sensitive/esp-open-sdk/crosstool-NG/.build/src/newlib-2.0.0/newlib/libc/stdio/fvwrite.c:143: undefined reference to `_malloc_r'
/Volumes/case-sensitive/esp-open-sdk/crosstool-NG/.build/src/newlib-2.0.0/newlib/libc/stdio/fvwrite.c:154: undefined reference to `_realloc_r'
/Volumes/case-sensitive/esp-open-sdk/crosstool-NG/.build/src/newlib-2.0.0/newlib/libc/stdio/fvwrite.c:160: undefined reference to `_free_r'
collect2: error: ld returned 1 exit status
make: *** [build/httpd.out] Error 1

你能帮帮我吗?提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2019-07-30 20:58:22

您可以定义SUBDIR和COMPONENTS_eagle.app.v6如下(在Makefile中)。

COMPONENTS_eagle.app.v6

SUBDIRS= \ gdbstub

COMPONENTS_eagle.app.v6 =\gdbstub/libgdbstu.a

参考资料:https://github.com/espressif/esp-gdbstub

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

https://stackoverflow.com/questions/54630493

复制
相关文章

相似问题

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