strdup() is part of the Posix (unix) standard and many implementations, but not (yet) the C standard. A bit surprising...
For Pelles C you have _strdup() by default, and by using the /Go compiler option you also get the alias strdup().
(strdup() is also in TR24731-2, but we forget that for now...)