Cant build DuetWifiServer


  • administrators

    Project DuetWiFiServer is obsolete. Use project DuetWiFiSocketServer instead.



  • thanks a lot,

    I have built "LwipESP8266" and "CoreESP8266" , again without any errors, but when i building "DuetWifiSocketServer" i got his error message :

    Building target: DuetWiFiSocketServer.elf
    Invoking: Cross G++ Linker
    xtensa-lx106-elf-g++ -nostdlib -L"/Users/xxx/Workspace/c++/CoreESP8266/Release" -L"/Users/xxx/Workspace/c++/CoreESP8266/sdk/lib" -L"/Users/xxx/Workspace/c++/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 ./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 -lmesh -lwpa2 -lstdc++ -lm -lc -lgcc -Wl,--end-group
    /Users/xxx/Documents/esp8266-Arduino-master/esp8266com/esp8266/tools/macosx/xtensa-lx106-elf/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld: cannot find -lLwipESP8266
    collect2: error: ld returned 1 exit status
    make: *** [DuetWiFiSocketServer.elf] Error 1


  • administrators

    I think you are using incompatible versions of the various GitHub projects. I am out of the office, but AFAIR you need to use the dev branches of the 3 projects.



  • ok , this makes sense , thank you.
    i tried to use the projects from the dev branches , and when i built the "duetWifiServerSocket" project, i got this error :

    Building target: DuetWiFiSocketServer.elf
    Invoking: Cross G++ Linker
    xtensa-lx106-elf-g++ -nostdlib -L"/Users/xxx/Workspace/c++/LwipESP8266/Release" -L"/Users/xxx/Workspace/c++/CoreESP8266/Release" -L"/Users/xxx/Workspace/c++/CoreESP8266/sdk/lib" -L"/Users/xxx/Workspace/c++/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 /Users/xxx/Workspace/c++/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
    /Users/xxx/Documents/Arduino/hardware/esp8266com/esp8266/tools/macosx/xtensa-lx106-elf/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld: cannot find -lLwipESP8266
    collect2: error: ld returned 1 exit status
    make: *** [DuetWiFiSocketServer.elf] Error 1


  • administrators

    Check that you have file libLwipESP8266.a in the Release folder within the LwipESP8266 project. That is the output file from building that project.

    I confirm that you need to use the dev branch of all 3 projects to build version 1.21.



  • hmm ok ,
    but i already use the dev branches for each of the 3 projects and i have a file named : "libLwipESP8266.a in the release folder of the LwipESP8266 project.


  • administrators

    In that case I suggest you check what the library path is set to in the linker settings for project DuetWiFiSocketServer, because that folder should be included in it.



  • 0_1525255641221_Bildschirmfoto 2018-05-02 um 12.06.34.png

    do you mean this settings ?


  • administrators

    @eberlin said in Cant build DuetWifiServer:

    xtensa-lx106-elf-g++ -nostdlib -L"/Users/xxx/Workspace/c++/LwipESP8266/Release" -L"/Users/xxx/Workspace/c++/CoreESP8266/Release" -L"/Users/xxx/Workspace/c++/CoreESP8266/sdk/lib" -L"/Users/xxx/Workspace/c++/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 /Users/xxx/Workspace/c++/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

    Yes, that looks OK. Looking at your command line from one of your previous posts:

    xtensa-lx106-elf-g++ -nostdlib -L"/Users/xxx/Workspace/c++/LwipESP8266/Release" -L"/Users/xxx/Workspace/c++/CoreESP8266/Release" -L"/Users/xxx/Workspace/c++/CoreESP8266/sdk/lib" -L"/Users/xxx/Workspace/c++/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 /Users/xxx/Workspace/c++/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

    the settings concerned (in bold) look OK to me too. Did you check that the case of the letters in the actual output file in /Users/xxx/Workspace/c++/CoreLwipESP8266/Release was exactly correct? I build under Windows, so an error in the letter case wouldn't matter on my system.



  • should i search for a output file named : lLwipESP8266 in
    /Users/xxx/Workspace/c++/CoreESP8266/Release ?
    there is no such file. 0_1525258088670_Bildschirmfoto 2018-05-02 um 12.47.35.png


  • administrators

    Sorry, I meant /Users/xxx/Workspace/c++/LwipESP8266/Release.



  • ah ok , in this folder i got this files:

    0_1525260216051_Bildschirmfoto 2018-05-02 um 13.22.53.png


  • administrators

    Looks like it's got the right file there, assuming that it is a sensible file and not zero length or something like that. I suggest you clean and rebuild project LwipESP8266. After that, if DuetWiFiSocketServer still won't link, try copying the libLwipESP8266.a file into one of the other library search directories, and/or ask for help with Eclipse and/or gcc.



  • i cleaned an rebuilt the project, and it still dont work. i also copied the file into some search directories, but it returned the same error ...


  • administrators

    Wierd, it's finding -lCoreESP8266 but not -lLwipESP8266 which has a similar format and the same number of characters. Does the libLwipESP8266.a file look a sensible size, and does it have the correct date/time corresponding to when you built it? My copy of that file is 423 KB (433,816 bytes) long. Were any errors reported when you cleaned and built project LwipESP8266 ?

    EDIT: for reference, this is what I get:

    'Invoking: Cross G++ Linker'
    xtensa-lx106-elf-g++ -nostdlib -L"C:\Eclipse\Firmware/LwipESP8266/Release" -L"C:\Eclipse\Firmware/CoreESP8266/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
    'Finished building target: DuetWiFiSocketServer.elf'



  • hello dc42,

    the libLwipESP8266.a file have a size of : 433.796 Byte (434 KB);
    the time is the same
    and i got no errors when i cleaned the LwipESP8266 project.

    my future goal is, that the printer send his data to a server, when he´s connected to the internet. this i why i want to build the DuetWifiServer and later update the code. is that the right way to do that?


  • administrators

    Maybe you should try putting your workspace at /Eclipse/Firmware instead of at /Users/xxx/Workspace/c++ in case either the path is too long or the + characters in your path are confusing Eclipse or ld ?

    I defined a message code connCreate in file MessageFormats.h for the Duet to send the WiFi module a command to open a TCP connection with a remote host, however file SocketServer.cpp has this:

    case NetworkCommand::connCreate: // create a connection
    // Not implemented yet

    So it would need to be implemented, then the Duet will be able to open remote connections.



  • i copied all three projects in this path : /Eclipse/Firmware and imported them into eclipse.
    but when i building the DuetWifiSocketServer , i got the same error :

    xtensa-lx106-elf-g++ -nostdlib -L"/Users/xxx/Workspace/c++/LwipESP8266/Release" -L"/Users/xxx/Workspace/c++/CoreESP8266/Release" -L"/Users/xxx/Workspace/c++/CoreESP8266/sdk/lib" -L"/Users/xxx/Workspace/c++/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 /Users/xxx/Workspace/c++/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
    /Users/xxx/Documents/Arduino/hardware/esp8266com/esp8266/tools/macosx/xtensa-lx106-elf/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld: cannot find -lLwipESP8266
    collect2: error: ld returned 1 exit status
    make: *** [DuetWiFiSocketServer.elf] Error 1

    i deleted the old projects and cleaned everything. but the program uses the same path , why ...?


  • administrators

    Did you try the Refresh option in the Project menu?



  • i refreshed and cleaned/rebuilt it now. but DuetWifiSocketServer tries to get this command from the old path again.
    i deleted the old projects from the harddrive and the program now says:

    error: /Users/xxx/Workspace/c++/CoreESP8266/Release/cores/esp8266/heap.o: No such file or directory


Log in to reply