"无法执行二进制文件"在Ubuntu for Windows平台上使用Eclipse运行编译的c ++程序时

时间:2015-10-13 04:50:13

标签: c++ linux eclipse cross-platform mingw32

我想从Windows平台上的Visual Studio迁移到Ubuntu上的Eclipse进行c ++开发,因为我使用Eclipse开发几乎所有的Java程序,而我只使用Windows虚拟机来开发C ++程序赢OS。所以,如果我愿意根本不能使用Windows VM。但是,我设法成功配置MinGW和Eclipse以编译程序,但不执行它们。

到目前为止我已经完成的步骤:

我已经安装了mingw32软件包和依赖项:

$ sudo apt-get install mingw32

我已经安装了Eclipse Mars用于C / C ++开发(手动,为了使这个安装与我所拥有的其他日食隔离)并以这种方式创建了一个新项目:

- New C++ project.
- [...]
- Cross-prefix: i586-mingw32msvc-
- Cross path: /usr/bin/

通过这种配置,我能够正确地构建一个可以在Windows上成功执行的.exe,但是当尝试调试它或在Eclipse下执行它时,我得到了这个错误:"无法执行二进制文件& #34;

谷歌我已经看到一些帖子建议使用wine来执行.exe,但我认为mingw32能够执行它。我错了,这是不可能的,或只是做错了什么?

2 个答案:

答案 0 :(得分:2)

Mingw32是一个Windows编译器,它将源代码编译为Windows可执行文件。此外,编译器不能执行文件(如问题所示),它只是将源代码编译为可执行的形式,在这种情况下是windows可执行文件(* .exe) )。所以,是的,为了在Ubuntu中运行.exe,你需要像Wine这样模仿Windows环境的东西

答案 1 :(得分:1)

mingw是一组用于构建本机Windows可执行文件的GNU工具 它没有执行任何操作 如果您真的想要为Windows进行交叉编译,则需要使用Windows或模拟器来执行。

要为Ubuntu构建,您可以使用本机编译器。

sudo apt-get install gcc