可以在Linux机器上编译Windows二进制文件吗?

在我的工作中,所有的项目数据驻留在可以从Linux和Windows机器上访问的NFS(使用Samba)。 所有的工作都是在Linux上完成的,但是我正在编译Windows的一些工具,这样我就可以用Visual Studio进行debugging了。

我已经有了一个很好的makefile,可以为使用不同目标的32位或64位Linux构build代码。 假设我在NFS上有所有外部库的Windows版本,并且假设代码足够干净以便在Windows下编译,那么是否可以在Linux上使用现有的makefile编译和链接我的Windows程序? 理想情况下,我想调用makefile一次,并build立所有三个32位Linux,64位Linux和Windows。

另外还可以select使用任何Visual Studio元数据进行编译,以便于debugging。

是的,你可以用MinGW来实现。

但是,您可能需要在makefile中修改一个或两个选项。

你在问一个“ 交叉编译器 ”。

我能想到的一些可能性:

  • 您可以尝试在Wine下运行Visual Studio。 如果Visual Studio没有运行,您仍然可以运行命令行工具。

  • 在虚拟机中运行完整的Windows安装。 我已经在Windows上用Linux做了这个,但不是相反,但我确信这是可能的。

  • 使用VNC从Linux PC访问单独的Windows PC

  • 使用GCC的交叉构建而不是Visual Studio

你需要一个交叉编译包。 你也可以使用Wine库。