cygwin 1.7中生成的.exe未在cygwin 1.52上运行

cygwin 1.7中生成的.exe未在cygwin 1.52上运行,cygwin,Cygwin,一年前,我用perl为一位客户开发了一个小脚本,并使用pp开发了它的.exe。 我们提供了.exe文件以及基本的cygwin(1.52)安装文件,以便向客户运行该.exe 现在,我们在脚本中得到了一个增强。我们丢失了cygwin的所有开发环境。我们再次安装了具有1.7版本、编码并生成了.exe文件的新cygwin。此文件未在具有cygwin 1.52的客户环境中运行。只是在执行.exe后,它将被禁用 我们不能要求客户改进测试环境。 还有什么方法可以让它在cygwin 1.52上使用cygwin

一年前,我用perl为一位客户开发了一个小脚本,并使用pp开发了它的.exe。 我们提供了.exe文件以及基本的cygwin(1.52)安装文件,以便向客户运行该.exe

现在,我们在脚本中得到了一个增强。我们丢失了cygwin的所有开发环境。我们再次安装了具有1.7版本、编码并生成了.exe文件的新cygwin。此文件未在具有cygwin 1.52的客户环境中运行。只是在执行.exe后,它将被禁用

我们不能要求客户改进测试环境。 还有什么方法可以让它在cygwin 1.52上使用cygwin dll 1.7运行.exe。 任何帮助都将不胜感激

Rgds,
sowm

Cygwin的开发人员严格要求向上兼容,但他们不尝试在主要版本之间提供向后兼容,比如1.5和1.7之间。这意味着您可以在1.7上构建一个在1.5上运行的程序,只要您避免调用在1.7中添加到Cygwin DLL的函数

代码调用1.7-only函数的原因很可能是因为它使用了自动发现平台功能的库。可能还有其他原因,但如果没有关于失败原因的任何细节,很难猜测

如果问题是由于第三方库造成的,我猜,花时间找出如何使它们恢复到1.5和1.7提供的通用功能可能是可行的。例如,对于基于autoconf的系统,您可以手动编辑configure脚本生成的
config.h
文件,以关闭某些已发现功能的使用。这反过来意味着要自己从源代码构建所有这些库,而不是从Cygwin项目存储库下载二进制版本并直接使用它们

从中拉出Cygwin 1.5环境可能更容易

顺便说一句,您知道分发Cygwin及其生成的可执行文件需要这些可执行文件符合GPL,或者您需要购买Cygwin商业分发许可证,对吗?如果没有。

安装带有