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

时间:2010-06-02 19:59:45

标签: cygwin

一年前,我为客户开发了perl的小脚本,并使用pp开发了.exe。 我们发送了.exe文件以及基本的cygwin(1.52)安装文件,以便将.exe运行给客户。

现在我们对脚本进行了改进。我们失去了cygwin的所有开发环境。我们安装了新的cygwin 1.7版本,编码并生成.exe文件。这个文件没有在拥有cygwin 1.52的客户环境中运行。只是在执行.exe

之后它才会变得无足轻重

我们不能要求客户提升测试环境。 是什么方法让它在cygwin 1.52上运行.exe与cygwin dll 1.7。 任何帮助都将受到高度赞赏。

RGDS, sowm

2 个答案:

答案 0 :(得分:2)

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

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

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

将Cygwin 1.5环境从Cygwin Time Machine中拉出来可能更容易。

顺便说一句,您知道分发Cygwin和使用它构建的可执行文件要求这些可执行文件符合GPL,或者您购买Cygwin商业分发许可证,对吗?如果不是see the FAQ

答案 1 :(得分:0)