'strcmpi' was not declared in this scope [SOLVED]

Granted, I haven’t tried compiling my code in about 7 months, but I just tried to compile under 0.8.0-rc.2 and I got the error, 'strcmpi' was not declared in this scope. I use strcmpi several times throughout the code. Has this function been removed?

EDIT: Same error under last stable 0.6.3.

1 Like

@Jerware Could you provide a code snippet for reference?

The strcmpi function was originally a Windows-specific extension, however it did work through system firmware 0.6.2.

You should switch to using strcasecmp. It works the same; you can do a string search and replace to switch it.

The strcasecmp function should work on all system firmware versions with no additional includes. I was able to compile it on 0.4.9, 0.5.3, 0.6.2, 0.6.3, 0.7.0-rc.6, and 0.8.0-rc.2.

The standard library functions, including things like strcmp, sprintf, etc. are all part of the C standard library, which is part of the gcc-arm toolchain. They’re not actually part of system firmware maintained by Particle. The reason is stopped working is that the standard library was updated in 0.6.3, and strcmpi was removed from the standard C library in that version.

2 Likes

Thanks @rickkas7. This is great info.