Duet3D Logo

    Duet3D

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • Documentation
    • Order

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

    Firmware installation
    2
    6
    503
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Albert
      Albert last edited by

      Hello,

      I was trying to bulid the DuetWifiSocketServer project. I have read the buildinstruction and a topic about buliding DuetWifiServer, which is https://forum.duet3d.com/topic/4984/cant-build-duetwifiserver.

      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,DuetWiFiSocketServer.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
      1 Reply Last reply Reply Quote 0
      • dc42
        dc42 administrators last edited by

        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.

        Duet WiFi hardware designer and firmware engineer
        Please do not ask me for Duet support via PM or email, use the forum
        http://www.escher3d.com, https://miscsolutions.wordpress.com

        1 Reply Last reply Reply Quote 0
        • Albert
          Albert last edited by

          Hello dc42,

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

          Thanks

          1 Reply Last reply Reply Quote 0
          • dc42
            dc42 administrators last edited by dc42

            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.

            Duet WiFi hardware designer and firmware engineer
            Please do not ask me for Duet support via PM or email, use the forum
            http://www.escher3d.com, https://miscsolutions.wordpress.com

            1 Reply Last reply Reply Quote 0
            • Albert
              Albert last edited by Albert

              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 https://github.com/esp8266/Arduino/tree/master/bootloaders/eboot, and edit the path towards it. But this does not work at all.

              1 Reply Last reply Reply Quote 0
              • Albert
                Albert last edited by Albert

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

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post
                Unless otherwise noted, all forum content is licensed under CC-BY-SA