在Linux上开发Windows应用程序?

时间:2009-08-06 09:34:38

标签: windows linux installer cross-platform wxwidgets

我的主要操作系统是Linux,但现在我不得不为Windows编写一些C ++应用程序。 我正在考虑使用像WxWidgets这样的跨平台库(有些关心其他平台依赖项)在Linux机器上进行开发,然后将结果交叉编译为mingw target。

所以我正在考虑使用的工具是

  • g ++用于编译和交叉编译。
  • CMake的
  • wxWidgets的
  • ???用于制作Windows安装程序包
  • 用于测试Windows版本的葡萄酒

我的问题:

  1. 我可能会使用哪些免费(或甚至更好的开源)Windows安装程序来创建最终包?如果可以从Linux编写软件包,将会有所帮助。

  2. Wine是否足以测试交叉编译版本(在Linux版本中测试所有逻辑之后)?

  3. 这是个好主意吗? : - )

7 个答案:

答案 0 :(得分:15)

检查Qt。这是一个非常丰富的跨平台框架。

至于安装人员,我强烈推荐WiX

对于测试,使用某种类型的虚拟化(如Sun Microsystems的VirtualBox)要好得多。我相信您可以使用Windows或Windows 7 RC的试用版,可以在2010年3月之前免费使用。

答案 1 :(得分:4)

首先,是的,这是个好主意。我有几个项目,我以这种方式维护他们的Windows版本。

无论如何,我建议你在Windows机器上测试最终产品。如果您拥有Windows操作系统许可证,则可以使用虚拟化进行最终测试。

我建议使用具有非常好的交叉编译支持的Autotools,并使用交叉编译器“原生”工作。

在Debian下运行

./configure --host=i586-mingw32msvc

这将创建正确的交叉编译makefile,就像这是Unix项目一样。

无论如何,我建议开发跨平台版本和时间测试 通过交叉编译它们的本机Windows版本与Wine / Windows。

答案 2 :(得分:3)

    • InstallJammer允许您为* nix和Windows创建安装程序。我不确定它是否允许交叉创建安装程序(即从* nix创建Windows安装程序)。可以尝试使用演示的商业选项是Bitrock InstallBuilder
    • 也许......如果你有Windows许可证,Dav的建议会更好。
    • 如果它可以帮助您更好/更有效地工作&有效,当然。
  1. 让我们了解你如何继续 - 这很有趣。

答案 3 :(得分:3)

你暗示这些应用程序仅适用于Windows而不是跨平台,在这种情况下我认为答案是3. - 这实际上不是一个好主意 - 胜过其余的。

原因是您无论是直接还是在虚拟实例中都必须在Windows下广泛测试应用程序。因此,您最好在目标操作系统下进行开发,因为您更有可能生成更好的应用程序 - 既可以更早地捕获错误,又可以更彻底地捕获错误,并确保您的应用程序“适用于”您的用户。我当然不会相信只是 Wine

我不是跨平台小部件的忠实粉丝。与Java应用程序一样,您通常最终会得到一些相当看起来正确的东西,并且就像不可思议的差距一样,足以让您的应用程序对大部分用户产生不良影响。即使在稍微抽象的层面上,每个操作系统的应用程序对它们的工作方式也有一些不同的感觉,你很可能最终得到一个感觉就像是KDE的Windows应用程序,这将再次让你的用户失望

所以是的,当然可以做到这一点,但从最终产品质量的角度来看可能不是最佳方法。这样做会让你自己产生一些障碍,我会说这可能会抵消你使用Linux平台的便利。实际上,如果你管理的话,我会感到惊讶,因为我敢打赌你会花更多的时间搞乱小部件试图对它们进行微调,这样它们就可以在真正的Windows下运行,而不是使用不熟悉的Windows。工具集。

答案 4 :(得分:2)

2)不,Wine说它不是Windows,你不能像那样可靠地测试它。我建议在你的Linux中运行一个虚拟机,这将使你的工作更顺畅。

3)听起来有可能,对于图形方面,我也会考虑用GTK+ GIMP,在Windows和Linux上的工作方式大致相同。

答案 5 :(得分:2)

无论如何,您将需要MSDN许可才能访问您想要测试的所有Windows版本。

您需要在VM上安装测试操作系统。这可能在您的Linux桌面上,但专用的盒子可能会更好。

我不知道您计划支持多少个Windows版本,但您绝对应该对所有版本进行测试。 Wine不是Windows,Windows XP也不是Windows Vista,Windows 7等。还有很多不同的Windows发行版和语言,其中一些你无疑应该测试。

一定要在Linux上开发。无论如何,使用跨平台小部件(是的,这些都是好的)。但是您仍然需要MSDN许可证才能安装测试操作系统。

答案 6 :(得分:0)

NSIS,Nullsoft Scriptable Install System可以在Linux下编译,用于为Windows生成安装二进制文件。说明是here。阅读一般部分和构建POSIX的部分。

我用它来为一些项目生成安装。

相关问题