好吧,伙计们,希望这是一个相当简单的问题:有什么办法可以在windows操作系统下运行一个用gcc编译的C程序吗? 请不要告诉我在Windows下重新编译它,因为我已经尝试,但看起来没有Windows编译器有128位本机types,并使用bignum库使我的程序慢10到100倍。 有没有什么办法可以在Windows下运行linux二进制文件? 有人告诉我关于cygwin的一些事情,但我不知道从哪里开始。 (我的程序也应该是可移植的,所以我不需要在我的机器上安装程序和东西)。
非常感谢你!! 马特奥
没有直接的办法。 Linux可执行文件的格式与Windows完全不同。 还有其他几个选项。
cygwin的。 在cygwin下用GCC编译程序。 我相信会建立一个使用cygwin兼容层的Windows EXE。
像VBox一样安装一个虚拟机。 在VBox中安装一个Linux。 在那里运行程序。
http://www.andlinux.org有一个框架来做到这一点。 我从来没有尝试过,但有一个视频教程http://www.youtube.com/watch?v=nULDHPCm9p4 。
请不要告诉我在Windows下重新编译它
你将不得不在Windows下重新编译它。 抱歉!
如果你真的找不到支持128位整数的编译器,你应该使用一些汇编器来复制Linux编译器发出的指令。
在我看来, flinux可以做到这一点。
从描述:
…是一个动态的二进制翻译器…能够在Windows上运行未经修改的Linux二进制文件…
注意:我没有测试过这个。
在主机Windows操作系统上将Linux的虚拟机用作来宾操作系统。 在VM下运行你的可执行文件。 但是在gcc-cygwin结合下编译是最好的选择。
自Windows 10周年更新以来,Windows能够通过Windows Subsystem for Linux
(WSL)本地运行Linux二进制文件, Bash on Ubuntu on Windows
通常称为Bash on Ubuntu on Windows
。
请参阅https://msdn.microsoft.com/en-us/commandline/wsl
安装之后,可以打开一个bash会话,导航到/mnt/<driveletter>/<path to your program>
并运行您的可执行文件,就像运行Linux一样。
注意:WSL仍然是测试版。