nopnop2002 / esp-idf-smb-client

SMB client example for esp-idf
MIT License
20 stars 8 forks source link

missing poll.h #5

Closed SquintyG33Rs closed 9 months ago

SquintyG33Rs commented 10 months ago

libsmb2 fails to build because the #include is missing

I know that technically this is an error with libsmb2 not your examples but I was wondering if you saw this problem and fixed it. I can't find how to solve it. there is one closed issue from 2019 on the libsmb2 git about this but it ends with just saying they fixed it in a PR. So I have no idea where to go from here. I only need smb2-ls to work...

though they did change smb3-seal.c

instead of this (your readme guide)

ifdef ESP_PLATFORM

include

include <sys/types.h>

//#define random esp_random ---> Remove this

endif


now its:

ifdef ESP_PLATFORM

include

include <sys/types.h>

include

if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 0, 0)

include

endif

define random esp_random

endif


so it might be unnecessary to comment out now?

thank you for your time

SquintyG33Rs commented 10 months ago

After trying a few more things cleaning the build, cloning the repos fresh again and such. I now get extra information. the header exists in the project in 2 places

after exiting from: fatal error:poll.h: No such file or directory

the compiler hints this: Missing "poll.h" file name found in the following component(s): libsmb2(\esp-idf-smb-client\components\libsmb2\include\msvc\poll.h), < libsmb2 repo newlib(\esp-idf-v5.1.2\components\newlib\platform_include\sys\poll.h). < esp-idf install file

So it's missing from the Cmakelists

I think the msvc include might be for windows platform only. But I don't know why it's not linking to a default include location of esp-idf?

nopnop2002 commented 9 months ago

Thank you for the report. This was an issue with libsmb2.

I solved it by contacting the author of libsmb2.

Please clone the latest libsmb2.

cd esp-idf-smb-client
sudo rm -r components
git clone https://github.com/sahlberg/libsmb2 components/libsmb2
cd smb2-ls
idf.py set-target {esp32/esp32s2/esp32s3/esp32c2/esp32c3/esp32c6}
idf.py menuconfig
idf.py flash