Разработчики Cygwin строго относятся к восходящей совместимости, но не пытаются обеспечить обратную совместимость между основными выпусками, например, между 1,5 и 1,7. Это означает, что вы можете создать программу на 1.7, которая работает на 1.5, только при условии, что вы избегаете вызова функций, которые были добавлены в библиотеку Cygwin DLL в 1.7.
Скорее всего, причина, по которой ваш код вызывает функции 1.7, заключается в том, что он использует библиотеки, которые автоматически обнаруживают функции платформы. Могут быть и другие причины, но без каких-либо подробностей о том, что именно терпит неудачу, трудно догадаться.
Если проблема связана со сторонними библиотеками, как я полагаю, может быть целесообразно потратить время на то, чтобы выяснить, как заставить их вернуться к общей функциональности, предоставляемой как 1.5, так и 1.7. Например, в системе, основанной на autoconf, вы можете вручную отредактировать файл config.h
, который создает скрипт configure, чтобы отключить использование некоторых обнаруженных функций. Это, в свою очередь, означает создание всех этих библиотек из исходного кода, а не загрузку двоичных версий из репозитория проекта Cygwin и их непосредственное использование.
Может быть проще извлечь среду Cygwin 1.5 из Cygwin Time Machine .
Кстати, вы знаете, что для распространения Cygwin и исполняемых файлов, созданных на его основе, требуется, чтобы эти исполняемые файлы соответствовали GPL, или чтобы вы приобрели коммерческую лицензию Cygwin, не так ли? Если нет см. FAQ .