在Linux上开发Windows软件

3

我正在为Windows制作软件,使用的是Windows API等技术,但我真的不喜欢在Windows上开发。

有没有一种方法可以在Linux上开发Windows软件,最好不用虚拟机,因为我的电脑性能不太好,我正在使用C/C++。


3
如果您将应用程序设计为具有与用户界面无关的“引擎”作为单独的逻辑模块,则可以在Linux上完成大部分工作(即引擎),并仅在Windows上执行GUI相关的任务。 - Galik
1
@Mintybits,你不仅需要一个能够生成Windows可执行文件的编译器,还需要一份Windows SDK的副本才能在代码中使用Windows API。虽然前者可能存在于非Windows系统中,但据我所知,后者仅适用于Windows系统,因此你需要在Windows系统上进行开发,无论是在虚拟机中还是实体机上。 - Remy Lebeau
在 @Galik 的基础上,你还可以为所需的 Windows API 创建一个抽象层,并在 Linux 上使用等效的系统调用来实现它们,或者在 Linux 上提供虚拟实现。然后你就可以在 Linux 上开发大部分功能,再回到 Windows 进行验证。 - Mestkon
我想听听你对于“gcc-mingw-w64-x86-64”交叉编译工具的看法,它似乎可以工作,但我不太确定。 - Mintybits
1
安装跨编译器(以及库等)应该很容易,这样您就可以在本地 Linux 上开发 Windows 软件(大多数 Linux 发行版通过它们的软件包系统提供 Mingw)。在 Wine 下进行测试也应该相对容易。唯一真正的问题是处理 Windows 和 Wine 之间的差异(您仍然必须不时地在 Windows 上测试,最好是几个版本的 Windows - 例如 Win 8 和 Win 10),以及在 Wine 下测试过程中附加源级调试器。 - Brendan
显示剩余7条评论
1个回答

2

对于这个问题,可能没有普适的答案。

以下是我在Linux上开发主要用于Windows的软件的方法:

  1. 我使用Qt框架,在我的情况下,它抽象了所有与平台相关的细节。
  2. 我使用MinGW-w64进行交叉编译。它非常适用于基于CMake的项目和Martchus二进制文件,这些文件也支持静态构建。
  3. 我使用Wine进行测试。然而,在开发期间,我可以测试和调试Linux二进制文件。由于Qt抽象符合我的需求,这是一种奢侈。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接