Hi jyang,
That is a specific cygwin issue that you are experiencing - for security reasons, cygwin dumped the strdup function from <string.h>.
I reported this as a bug to be fixed in a later gromacs version here
Until then you can either:
- use WSL (Windows subsystem for Linux) instead of cygwin
- in tmpi_init.cpp you can try replacing in lines 476 and 478 with
threads[i].argv[j] = strndup( (*argv)[j] , 1000);
(note the extra n in there) This I did not try, because I don’t have cygwin installed, but this will likely fix the bug.
Let me know how it went!
Christian