Cant build DuetWifiServer:"heap.o: No such file or directory"

  • Hello,

    I was trying to bulid the DuetWifiSocketServer project. I have read the buildinstruction and a topic about buliding DuetWifiServer, which is

    I followed the steps in that topic and now I can bulid the LwipESP8266 and the CoreESP8266 without any error. However, for the DuetWiFiSocketServer, eclipse sent this error:

    Building target: DuetWiFiSocketServer.elf
    Invoking: Cross G++ Linker
    xtensa-lx106-elf-g++ -nostdlib -L"C:\Eclipse\Firmware\CoreESP8266\Release\cores\esp8266" -L"C:\Eclipse\Firmware/LwipESP8266/Release" -L"C:\Eclipse\Firmware/CoreESP8266/sdk/lib" -L"C:\Eclipse\Firmware/DuetWiFiSocketServer/src/ld" -TDuetWiFiSocketServer.ld -Wl,--no-check-sections -u call_user_start -u _printf_float -u _scanf_float -Wl,-static -Wl,--gc-sections -Wl,-wrap,system_restart_local -Wl,-wrap,spi_flash_read -Wl,-Map, -o "DuetWiFiSocketServer.elf" -Wl,--start-group C:\Eclipse\Firmware/CoreESP8266/Release/cores/esp8266/heap.o ./src/Connection.o ./src/HSPI.o ./src/Listener.o ./src/Misc.o ./src/SocketServer.o -lCoreESP8266 -lhal -lphy -lpp -lnet80211 -lLwipESP8266 -lwpa -lcrypto -lmain -lwps -laxtls -lespnow -lsmartconfig -lairkiss -lwpa2 -lstdc++ -lm -lc -lgcc -Wl,--end-group
    xtensa-lx106-elf-g++: error: C:EclipseFirmware/CoreESP8266/Release/cores/esp8266/heap.o: No such file or directory
    makefile:45: recipe for target 'DuetWiFiSocketServer.elf' failed
    make: *** [DuetWiFiSocketServer.elf] Error1

    But I can find that file in the directory, I am really confuse why it can not find that file.

    Really appreciate any help to solve that problem.

    Following is the branch of my projects:

    • CoreESP8266-master
    • LwipESP8266-dev
    • DuetWiFiSocketServer-dev

  • administrators

    If you look carefully at the error message, you will see that it is discarding the backslashes in the path. Either change them to forward slashes, or put that filename in double quotes in the linker command line.

  • Hello dc42,

    Thanks for help, and can you give some hint about how to change the path, because I am new to the eclipse.


  • administrators

    Right click on the DuetWiFiSockerServer project, then select Properties, C/C++ Build, Settings, Cross G++ Linker. in the Command Line Pattern box you should see something like this:

    ${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} -Wl,--start-group ${workspace_loc}/CoreESP8266/${ConfigName}/cores/esp8266/heap.o ${INPUTS} -Wl,--end-group

    Change it to this:

    ${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} -Wl,--start-group "${workspace_loc}/CoreESP8266/${ConfigName}/cores/esp8266/heap.o" ${INPUTS} -Wl,--end-group

    Note the added double quotes.

  • That worked! Thank you so much for help!

    But there is a new error:

    make --no-print-directory post-build
    Generating binary
    "D:\esp8266-Arduino-master\esp8266com\esp8266\tools\windows\esptool.exe" -eo "D:\Arduino-master\bootloaders\eboot\bootloaders\eboot\eboot.elf" -bo "C:\Eclipse\Firmware\DuetWiFiSocketServer\Release/DuetWiFiServer.bin" -bm dio -bf 40 -bz 4M -bs .text -bp 4096 -ec -eo "C:\Eclipse\Firmware\DuetWiFiSocketServer\Release/DuetWiFiSocketServer.elf" -bs .irom0.text -bs .text -bs .data -bs .rodata -bc -ec
    error: can't open ELF file D:\Arduino-master\bootloaders\eboot\bootloaders\eboot\eboot.elf
    d:/gnu arm eclipse/build tools/2.6-201507152002/bin/sh: D:\esp8266-Arduino-master\esp8266com\esp8266\tools\windows\esptool.exe: No error
    makefile:58: recipe for target 'post-build' failed
    make[1]: [post-build] Error 2 (ignored)

    I can not find the eboot.elf file in any projects downloaded from your repositories. So I downloaded an project containing the elf file from the github, which is, and edit the path towards it. But this does not work at all.

  • I just solved that error by downloading a v0.4.12 esptool.

Log in to reply