Флаг -mno-cygwin
удаляет все зависимости от Cygwin, так что ваша программа не будет полагаться ни на cygwin1.dll, ни на присутствие среды Unix. В результате исполняемый файл выглядит так, как если бы он был скомпилирован с использованием набора инструментов MinGW, а не Cygwin. Стандартные функции не распознают или не понимают пути или символические ссылки в стиле Unix, поскольку они реализованы в Cygwin.
Я не могу вспомнить, где он находится, но в Cygwin есть справочный документ, который объясняет это.