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 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] Error1But 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
-
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.
Thanks
-
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 https://github.com/esp8266/Arduino/tree/master/bootloaders/eboot, 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.