在Linux上开发Windows应用程序?[已关闭]

ego6inou  于 2023-04-11  发布在  Linux
关注(0)|答案(7)|浏览(133)

已关闭,此问题需要更focused,目前不接受回答。
**要改进此问题吗?**更新问题,使其仅关注editing this post的一个问题。

6年前关闭。
Improve this question
我的主要操作系统是Linux,但现在我不得不为Windows编写一些C++应用程序。我正在考虑在Linux机器上使用跨平台库(如WxWidgets)进行开发(有些关注其他平台依赖性),然后将结果交叉编译到mingw目标。
所以我想用的工具是

  • g++用于编译和交叉编译。
  • CMake
  • WxWidgets
  • 用于制作windows installer软件包
  • wine for测试的windows版本

我的问题是:
1.有哪些免费的(甚至更好的开源)Windows安装程序可以用来创建最终的软件包?如果可以从Linux准备软件包,那将很有帮助。

  1. Wine是否足以测试交叉编译版本(在Linux版本中测试所有逻辑之后)?
    1.这是个好主意吗?:)
fquxozlt

fquxozlt1#

2)不,Wine不是Windows,你不能像那样可靠地测试它。我建议在你的Linux中运行一个虚拟机,这将使你的工作更加顺利。
3)这听起来是可能的,对于图形方面,我也会考虑GTK+,它用于GIMP,在Windows和Linux上的工作原理大致相同。

ogsagwnx

ogsagwnx2#

无论如何,您都需要一个MSDN许可证才能访问您想要测试的所有Windows版本。
你需要在虚拟机上安装测试操作系统,这可以在你的Linux桌面上,但是一个专用的盒子可能会更好。
我不知道你打算支持多少个版本的Windows,但你一定要测试所有的版本。Wine不是Windows,Windows XP也不是Windows Vista,Windows 7等。Windows也有很多不同的发行版和语言,其中一些无疑是你应该测试的。
无论如何,在Linux上开发。无论如何,使用跨平台的小部件(是的,这些都很好)。但是你仍然需要你的MSDN许可证,这样你才能安装测试操作系统。

tag5nh1u

tag5nh1u3#

NSIS,Nullsoft Scriptable Install System可以在Linux下编译,并用于生成Windows的安装二进制文件。说明是here。阅读一般部分,以及在POSIX上构建的部分。
我用它来为几个项目生成安装。

r6vfmomb

r6vfmomb4#

也可以看看Qt,它是一个非常丰富的跨平台框架。
至于安装程序,我强烈推荐WiX
对于测试来说,使用某种虚拟化会更好,比如Sun Microsystems的VirtualBox。我相信你可以使用Windows或Windows 7 RC的试用版,它们在2010年3月之前都是免费的。

t8e9dugd

t8e9dugd5#

首先,是的,这是一个好主意。我有几个项目,我维护他们的Windows版本以这种方式。
无论如何,我建议你在Windows机器上测试最终产品。如果你有Windows操作系统的许可证,你可以使用虚拟化来做最终测试。
我建议使用Autotools,它具有非常好的交叉编译支持,并且可以“原生”地与交叉编译器一起工作。
例如在Debian下,运行

./configure --host=i586-mingw32msvc

这将创建正确的交叉编译makefile,就像这是一个Unix项目一样。
在任何情况下,我建议开发一个跨平台版本和一个时间到时间测试原生Windows版本与Wine/Windows通过交叉编译它们。

2vuwiymt

2vuwiymt6#

你暗示这些应用程序只适用于Windows,而不是跨平台的,在这种情况下,我认为答案是3。-这真的不是一个好主意-胜过其他。
原因是你无论如何都必须在Windows下广泛地测试应用程序,无论是直接还是在虚拟示例中。这就是为什么你最好在目标操作系统下开发,因为你更有可能开发出更好的应用程序-既可以更早更彻底地捕获错误,也可以确保你的应用程序为你的用户“工作”。我当然不会相信 * 只是 * Wine
我不是一个跨平台小部件的狂热爱好者。就像Java应用程序一样,你通常最终会得到一些看起来不太正确的东西,并且喜欢那些足以让你的应用程序对大部分用户来说都很糟糕的不可思议的差距。即使在稍微抽象一点的层面上,每个操作系统的应用程序在工作方式上都有一些细微的不同,你很可能最终得到一个感觉像KDE的Windows应用程序,这又会让你的用户望而却步。
所以是的,当然有可能做到这一点,但从最终产品的质量Angular 来看,这可能不是最佳方法。这样做会给予你自己的产品带来一些障碍,我会说这可能会抵消使用Linux平台的便利性。实际上,如果你能做到这一点,我会感到惊讶,因为我敢打赌你会与使用不熟悉的Windows工具集相比,我会花更多的时间来摆弄这些小部件,尝试对它们进行微调,使它们能够在真实的的Windows下正常工作。

pdtvr36n

pdtvr36n7#

    • InstallJammer允许你为 *nix和Windows创建安装程序。我不确定它是否允许交叉创建安装程序(即从 *nix创建Windows安装程序)。一个商业选项,可以尝试的演示是Bitrock InstallBuilder
    • 也许...如果你有一个Windows许可证,Dav的建议会更好。
    • 如果它能帮助你更好/更有效地工作,当然可以。

告诉我们你的进展情况--这很有趣。

相关问题