4

我正在 Ubuntu 14.04 上试验Nuitka并尝试创建和运行可执行文件。我有一个hello.py包含内容的文件

print("Hello please")

我已经变成了hello.exe使用 command nuitka hello.py。但是,当我尝试使用 Wine 1.7 运行它时,我收到以下错误:

$ wine hello.exe
wine: Bad EXE format for Z:\home\crclayton\hello.exe.

我认为这是 Nuitka 的问题,而不是 Wine 的问题,因为我可以使用 Wine 运行我在 C# 中创建的 helloworld.exe。有谁知道如何修理它?

编辑:

我在 Ubuntu 上没有任何运气,所以我在我的 Windows 7 分区(Ubuntu 和 Windows 都是 64 位)上测试了 hello.exe,我得到了以下错误:

此文件的版本与您正在运行的 Windows 版本不兼容。检查您计算机的系统信息以查看您是否需要 x86(32 位)或 x64(64 位)版本的程序,然后联系软件发行商。

Nuitka 正在创建一个 32 位 exe 并且我试图在 64 位操作系统上运行它的问题是什么?如果是这样,有人知道如何解决吗?

4

1 回答 1

7

根据 Nuitka 手册

生成的文件名在所有平台上都是 program.exe,这并不意味着它不能在非 Windows 上运行!但是如果你编译程序,我们不想覆盖它,或者不确定哪个是编译的形式,哪个不是。

如果你运行nuitka hello.py on Ubuntu (and thusgcc ELF) you will createhello.exe` 但是一个 linux-only ELF 可执行文件

如果您nuitka hello.py在 Windows 上运行(因此是 gcc/PE),您将创建hello.exe一个仅限 Windows 的 PE 可执行文件(可以通过 WINE 在 linux 中执行)

Nuitka、Cython、cx_freeze 不会生成与操作系统无关的可执行文件,但提供了为特定操作系统构建的方法

您正在尝试做以下两件事之一:1)为 Windows 构建 linux。如果是这种情况,您需要配置交叉编译或在 WINE 中进行最终构建(即安装到 wine:python、nuitika、gcc ......)

2)你在 linux 中为 linux 构建。chmod +x hello.exe; ./hello.exe # 然后可能重命名。

于 2015-01-03T15:50:34.997 回答