I confirm strings.h is needed on different Ubuntu versions to avoid warnings
about strcasecmp not being declared with -Wall. I see in GDAL's cpl_port.h
that #include <strings.h> is skipped if _WIN32 is defined, hence the similar
proposed fix

Super weird indeed. Don't you have a geo_config.h in the root directory that
would have been put there by a previous nmake build attempt ? I see that
makefile.vc copies geo_config.h.vc into geo_config.h and geo_config.h.vc
(apparently wrongly) have #define HAVE_STRINGS_H 1