编译的 perl 可执行文件无法在 Windows 7(64 位)上运行
我在 64 位 Linux 内核上创建了 perl 脚本的可执行文件 (.exe)。在此环境下它可以正确执行。
当可执行文件在 64 位 Windows 7 中运行时,会显示以下错误消息:
此文件的版本与 Windows 版本不兼容 你正在跑步。检查你的电脑的系统信息看看 无论您需要 x86(32 位)还是 x64(64 位)版本的程序, 然后联系软件发行商。
鉴于源操作系统和目标操作系统都是 64 位,我不确定构建的架构是否是问题所在。要使编译后的 perl 程序在 Windows 中正确执行,是否有任何特殊注意事项?谢谢。
I have created an executable (.exe) of a perl script on a 64-bit linux kernel. It executes correctly in this environment.
When the executable is run in 64-bit Windows 7, the following error message is displayed:
The version of this file is not compatible with the version of Windows
you're running. Check your computer's system information to see
whether you need x86 (32-bit) or x64 (64-bit) version of the program,
and then contact the software publisher.
Given that the source and destination OS's were both 64-bit, I'm not sure that the architecture of the build is the issue. Are there any special considerations to make a compiled perl program execute properly in Windows? Thank you.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
可执行文件不跨平台兼容。它们只能在原始平台上运行,除非它们被显式交叉编译到不同的目标。这实际上就是我们使用解释性语言的原因。您想要做的事情是不可能的,因为 Windows 和 Linux API、库以及几乎所有内容都完全不同。
这就是为什么您需要为 linux/windows/mac 下载不同版本的程序。
Executable files are not compatible across platforms. They will run on the original platform only unless they are explicitly cross-compiled to a different target. That's actually the reason we use interpreted languages. What you want to do is not possible because the Windows and Linux APIs, libraries, and well just about everything are completely different.
This is why you need to download a different version of a program for linux/windows/mac.