我已经阅读了跨平台标签中的一些文章。然而,当我开始一个新的应用程序(主要是终端/控制台应用程序)时,我想知道最简单的跨平台方式(即适用于Linux,Mac OS X和Windows)。我考虑过以下几点:
你的想法?在此先感谢您的贡献!
编辑:听起来有很多关于Java和Qt的热门回复。我们在这两者之间有什么权衡?
答案 0 :(得分:18)
不要走第一条路。您将遇到许多已经通过众多工具解决的问题。
如果您绝对需要C ++,Qt是一个很好的选择。实际上,即使您不熟悉它也会加快开发速度,因为它具有出色的文档并且易于使用。关于它的好处是它不仅仅是一个GUI框架,还有网络,XML,I / O以及许多其他你可能需要的东西。
如果没有必要的C ++,我会选择Java。对于大多数应用程序来说,C ++是太低级别的语言。调试内存管理和损坏的堆栈可能是一场噩梦。
致编辑问题:
答案 1 :(得分:5)
使用Java。尽可能多的抨击,它是让任何平台上的东西工作的最好的事情。当然,您仍然需要处理您可能正在使用的外部操作系统相关功能,但它比使用其他任何功能要好得多。
除了Java,你可以在JVM上运行一些东西--JRuby,Jython,Scala可以想到。
您也可以直接使用脚本语言编写(Ruby,Python等)。
C / C ++最适合需要完全内存控制和高可控性的应用程序。
答案 2 :(得分:4)
我选择QT(或其他一些框架)选项。如果你选择了第一个,你会发现它更难。毕竟,您必须知道要针对您所定位的所有平台的各种条件编译部分。
答案 3 :(得分:3)
我建议使用专为跨平台应用程序开发而设计的技术。以下是我所知道的两种技术 - 只要您阅读文档并正确使用这些功能 - 您就可以构建应用程序以在所有3个平台上运行:
当然,总有网络。我主要使用Web应用程序,不仅仅是因为它们的可移植性,还因为它们可以在我的Windows PC,Ubuntu计算机和Mac上运行。
我们主要构建Web应用程序,因为Web是未来。本地应用程序在我的组织中被视为大部分已过时,除非当然有一些网站尚未支持的功能或技术使该应用程序无法完全基于Web。
答案 4 :(得分:2)
如果您正在制作控制台应用程序,如果您坚持使用POSIX库中定义的功能,则应该能够为所有三个平台使用相同的源。设置构建环境是最复杂的部分,特别是如果您希望能够在同一源代码树中构建多个平台。
答案 5 :(得分:2)
我想说如果你真的想要使用C ++,QT是跨平台应用的最简单的方法,我发现自己在需要UI时使用QT,即使QT有一大堆库,几乎可以做到一切在C ++中更容易。
如果您不想使用QT,那么您需要一个好的设计和大量的抽象来进行跨平台应用。
然而,对于中型应用程序,我正在使用越来越多的Python bindinq到QT。 如果你正在使用一个控制台应用程序并且你知道一些python,你可能会发现Python脚本比C ++更舒服。它可以节省时间,以便能够专注于您的应用程序。
答案 6 :(得分:2)
我还建议Github electron允许使用NodeJ和Google的Chromium构建跨平台桌面应用程序。这种方法的唯一缺点是,由于Javascript和本机C ++之间的抽象层,电子应用程序运行速度比本机C ++应用程序慢得多。