chmorgan / esphttpd-freertos

freertos example of libesphttpd for esp32 and esp8266
54 stars 13 forks source link

'ln' is not recognized as.... ninja failed with exit code 1 #28

Closed elabree closed 3 years ago

elabree commented 4 years ago

Hi,

I have just started to learn how to use the esp32. This project would be a great help. So I tried to build it on windows 10 using esp-idf 4.0 stable. My setup seems to work correctly with other projects and examples.

Running idf.py build on this one, the first issue was:

[665/686] Performing install step for 'mkespfsimage' [0/1] Install the project... -- Install configuration: "" -- Installing: C:/Users/Egon/esp/esphttpd-freertos/build/esp-idf/espfs/mkespfsimage/mkespfsimage.exe [667/686] Generating node_modules FAILED: esp-idf/espfs/node_modules cmd.exe /C "cd /D C:\Users\Egon\esp\esphttpd-freertos\build\esp-idf\espfs && npm install --save-dev @babel/core @babel/cli @babel/preset-env babel-preset-minify html-minifier uglifycss" 'npm' is not recognized as an internal or external command, operable program or batch file. ninja: build stopped: subcommand failed. ninja failed with exit code 1

Fixed it by installing: https://nodejs.org/en/ Unfortunately I got stuck at the following:

[839/857] Generating bin/uglifycss FAILED: esp-idf/espfs/bin/uglifycss cmd.exe /C "cd /D C:\Users\Egon\esp\esphttpd-freertos\build\esp-idf\espfs && ln -fs ../node_modules/.bin/uglifycss bin/" 'ln' is not recognized as an internal or external command, operable program or batch file. [840/857] Generating bin/babel FAILED: esp-idf/espfs/bin/babel cmd.exe /C "cd /D C:\Users\Egon\esp\esphttpd-freertos\build\esp-idf\espfs && ln -fs ../node_modules/.bin/babel bin/" 'ln' is not recognized as an internal or external command, operable program or batch file. [841/857] Generating bin/html-minifier FAILED: esp-idf/espfs/bin/html-minifier cmd.exe /C "cd /D C:\Users\Egon\esp\esphttpd-freertos\build\esp-idf\espfs && ln -fs ../node_modules/.bin/html-minifier bin/" 'ln' is not recognized as an internal or external command, operable program or batch file. ninja: build stopped: subcommand failed. ninja failed with exit code 1

As I just started to learn esp32 stuff and I am not an experienced c++ / linux programmer I don't know how to fix that one. My guess is that the cmake scripts use linux commands. I am a bit sad about it since the esphttpd library seems to be just what I was looking for. Also this example seems very usefull.

I would really appreciate your advise. Egon :-)

phatpaul commented 4 years ago

Sorry I haven't tested this on IDF 4.0 yet. I'm still on 3.3. We need more testers on different platforms to keep this project stable.

One idea I have, since @jkent added a bunch of node.js dependencies in espfs: Please try to disable menuconfig -> Components -> espfs -> "Preprocess files"

@jkent thoughts?

elabree commented 4 years ago

Hi, No reason to be sorry. It is impossible to thank you enough for doing all the effort to maintain and support this awsome project. I never expected things to be perfect. I followed your advise and disabled the 3 options under preprocess files. No luck however, the error on 'ln' remains. Tried to clean before building, but that fails too:

C:\Users\Egon\esp\esphttpd-freertos>idf.py clean Checking Python dependencies... Python requirements from C:\Users\Egon\esp\esp-idf\requirements.txt are satisfied. Executing action: clean Running ninja in directory c:\users\egon\esp\esphttpd-freertos\build Executing "ninja clean"... [1/1] Cleaning all built files... FAILED: clean C:\Users\Egon.espressif\tools\ninja\1.9.0\ninja.exe -t clean Cleaning... ninja: error: remove(esp-idf/espfs/node_modules): Permission denied 841 files. ninja: build stopped: subcommand failed. ninja failed with exit code 1 When I idf.py build: [838/856] Generating bin/html-minifier FAILED: esp-idf/espfs/bin/html-minifier cmd.exe /C "cd /D C:\Users\Egon\esp\esphttpd-freertos\build\esp-idf\espfs && ln -fs ../node_modules/.bin/html-minifier bin/" 'ln' is not recognized as an internal or external command, operable program or batch file. [839/856] Building C object esp-idf/libesphttpd/CMakeFiles/__idf_libesphttpd.dir/util/esp32_wifi.c.obj ninja: build stopped: subcommand failed. ninja failed with exit code 1

Since other projects I tried are still on esp-idf 3.3 and use the make buildflow I have the Legacy GNU make environment for windows installed. Tried your project on that one:

Egon@Q910 MINGW32 ~/esp/esphttpd-freertos $ make Toolchain path: /opt/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc Toolchain version: crosstool-ng-1.22.0-80-g6c4433a5 Compiler version: 5.2.0 CC build/bootloader/bootloader_support/src/bootloader_random.o ... CC build/espfs/src/espfs_vfs.o CC build/espfs/heatshrink/src/heatshrink_decoder.o make[1]: npm: Opdracht niet gevonden make[1]: [/home/Egon/esp/esphttpd-freertos/components/espfs/component.mk:54: node_modules] Fout 127 make: [C:/msys32/home/Egon/esp/esp-idf/make/project.mk:552: component-espfs-build] Fout 2

Because of issues with another project on 3.3 I needed to revert to the following commit of the v3.3 tools:

Egon@Q910 MINGW32 ~/esp/esp-idf $ git describe v3.3.1-160-g12d639e5b

I hope this info helps to improve.... Kind Regards, Egon.

phatpaul commented 4 years ago

It's not clear, did you fix your issue by switching to 3.3?

BTW, your issue appears to be casued by espfs, which has been moved to https://github.com/jkent/esp32-espfs/issues Please create an issue in that repo.

elabree commented 4 years ago

No, I failed to build the project on v3.3 (see my previous message after "Tried your project on that one:"). I will have a look @ espfs later and create an issue there. Thanks for letting me know.

elabree commented 4 years ago

BTW, your issue appears to be casued by espfs, which has been moved to https://github.com/jkent/esp32-espfs/issues Please create an issue in that repo.

I have just cloned "jkent/esp32-espfs" and have no clue how to build it if that's even possible .

Unfortunately as a beginner I do not really understand why it's needed to build "esphttpd-freertos". And I don't have a clue why the build fails on esp32-espfs..

So I am really feeling stupid right now. Your project seems too complex for me, better go back to the blinking led and start from there :-(

jkent commented 4 years ago

I'll be available in the coming weeks to set aside some time and test this stuff better, and write some documentation. Regrettably I don't give Windows the attention it deserves, since most people are using it. I'll try and change that.

On Wed, May 20, 2020, 11:59 AM elabree notifications@github.com wrote:

BTW, your issue appears to be casued by espfs, which has been moved to https://github.com/jkent/esp32-espfs/issues Please create an issue in that repo. I have just cloned "jkent/esp32-espfs" and have no clue how to build it if that's even possible .

Unfortunately as a beginner I do not really understand why it's needed to build "esphttpd-freertos". And I don't have a clue why the build fails on esp32-espfs..

So I am really feeling stupid right now. Your project seems too complex for me, better retun to the blinking led and start from there :-(

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/chmorgan/esphttpd-freertos/issues/28#issuecomment-631601015, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAEH7M5LMA625L4BFLSTHNTRSQD6LANCNFSM4M7BMVHA .

elabree commented 4 years ago

Thanks for your kind response. It would be nice if the project would not depend on the OS. I think that's what Espressif aims for with their ESP-IDF framework. Anything you can do to help is really appreciated. In case you want me to test on windows: I have the latest stable ESP-IDF release 4.0 installed (Both the CMake/Ninja build tools and the Legacy GNU Make (MSYS2) environment. Also the ESP-IDF release v3.3 stable (MSYS2) since many projects are still on v3.3. For the documentation: I have not seen many readme's mentioning on which ESP-IDF version the project was tested. That's important for anyone who wants to try building. Also if you want me to review your doc, I'll be happy to help.

jkent commented 4 years ago

Hi @elabree, I've done some major work on espfs (master branch) recently and have submitted some changes to libesphttpd and esphttpd-freertos for review as a pull request. The easiest way to check out these changes is to clone https://github.com/jkent/esphttpd-freerots recursively. The usage of node.js is improved and no longer uses symbolic links, which is one of the issues you were having. I've also added some documentation for espfs in the wip branch, a good part of it applies to the master branch (but master does not use a hash table). If you could check that these changes work in your environment, it would be much appreciated.

elabree commented 4 years ago

Hi @jkent, Sorry for the delay (I have an annoying health issue that slows me down). I just cloned your esphttpd-freertos repo and tried to build with esp-idf v4.0 on windows (new cmake buildsystem - idf.py). Builds without issues. Flashed it to my esp32. And YES: it's alive :-) Noticed the following warning: "[816/846] Building C object esp-idf/libesphttpd/CMakeFiles/__idf_libesphttpd.dir/core/httpd-espfs.c.obj ../components/libesphttpd/core/httpd-espfs.c: In function 'getFilepath': ../components/libesphttpd/core/httpd-espfs.c:221:10: warning: returning 'void *' from a function with return type 'size_t' {aka 'unsigned int'} makes integer from pointer without a cast [-Wint-conversion] return NULL;" Thanks for the update, and (again) my excuses for the long delay.