【问题标题】:Running linux gcc-compiled program under windows [closed]windows下运行linux gcc编译的程序[关闭]
【发布时间】:2011-09-22 15:43:47
【问题描述】:

好的,伙计们,希望这是一个非常简单的问题: 有没有办法在windows操作系统上运行在linux下用gcc编译的C程序? 请不要告诉我在 windows 下重新编译它,因为我已经尝试过但看起来没有 c windows 编译器具有 128 位本机类型,并且使用 bignum 库会使我的程序慢 10 到 100 倍。 有没有办法在 Windows 下实际运行 linux 二进制文件? 有人告诉我一些关于 cygwin 的事情,但我不知道从哪里开始。 (我的程序也应该是可移植的,所以我不需要在我的机器上安装程序和东西)。

非常感谢!! 马特奥

【问题讨论】:

  • 我做到了,但它无法识别 __uint128_t... 任何提示?

标签: c windows linux gcc cygwin


【解决方案1】:

自 Windows 10 周年更新以来,Windows 能够通过 Windows Subsystem for Linux (WSL),通常称为 Bash on Ubuntu on Windows,本机运行 Linux 二进制文件。

https://msdn.microsoft.com/en-us/commandline/wsl

安装后,您可以打开一个 bash 会话,导航到 /mnt/<driveletter>/<path to your program> 并像运行 Linux 一样运行您的可执行文件。

注意:WSL 仍处于测试阶段。

【讨论】:

    【解决方案2】:

    在我看来,flinux 可以做到。

    来自描述:

    ... 是一个动态二进制翻译器... 能够在 Windows 上运行未经修改的 Linux 二进制文件...

    注意:我没有测试过这个。

    【讨论】:

    • 我已经测试了 FLinux 以运行命令行 Linux 程序并且它工作正常。无需重新编译程序。
    【解决方案3】:

    在您的主机 Windows 操作系统上使用 Linux 虚拟机作为来宾操作系统。在 VM 下运行可执行文件。但是在 gcc-cygwin combine 下编译是最好的选择。

    【讨论】:

      【解决方案4】:

      请不要告诉我重新编译它 窗户下

      您必须在 Windows 下重新编译它。对不起!

      如果你真的找不到支持 128 位整数的编译器,你应该使用一些汇编器来复制你的 Linux 编译器发出的指令。

      【讨论】:

        【解决方案5】:

        没有直接的方法。 Linux 可执行文件的格式与 Windows 完全不同。还有其他几个选项。

        • cygwin。在cygwin下用GCC编译程序。我相信这将构建一个使用 cygwin 兼容层的 windows exe。

        • 安装像 VBox 这样的虚拟机。在 VBox 中安装 Linux。在那里运行程序。

        • http://www.andlinux.org 具有执行此操作的框架。没试过,不过有视频教程http://www.youtube.com/watch?v=nULDHPCm9p4

        【讨论】:

        • 所以,如果我在 cygwin 下编译程序,它会生成一个 .exe 文件,如果我将“cygwin1.dll”放在 .exe 的同一目录中,我可以在任何 Windows 计算机上使用该文件?
        • cygwin dll 必须在 Windows 可以找到的某个位置。老实说,我避免使用 Windows,并且不记得究竟是如何设置的。
        • 嗨!我试图在cygwin下编译它,但是......!看起来它甚至无法识别 __uint128_t 标识符!我想知道......在哪个版本的cygwin中引入了__uint128_t?我目前的 cygwin gcc 版本是 4.3.4...
        • 无需使用 FLinux (ForeignLinux) 软件重新编译,如以下答案之一所述。 FLinux 不支持 Linux 的所有功能。但是对于某些命令行程序,我已经对其进行了测试并且可以正常工作。它可以直接在 Windows 上运行 Linux 二进制文件。
        猜你喜欢
        • 2015-10-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-13
        • 2020-07-13
        • 2016-12-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多