我正在开发一个使用C++并依赖于OpenGL遗留特性的游戏。
我大部分时间都在Windows机器上编程,现在我正在考虑扩展到Linux和Mac。作为个人的挑战,我想让我的软件尽可能的向后兼容,并且支持尽可能多的OSes。有了Windows,我一直能够维持对Windows 95的支持( Visual在这个过程中给我带来了一些麻烦,但还是解决了问题)。然而,我对Mac几乎一无所知,直到现在我才亲自使用过它。考虑到我的软件运行在Windows 95上,它当然不需要任何高级功能的功能。
旧版本的Xcode似乎支持的Mac的最低版本是10.1.x。如果我要为这个版本的Mac编写软件,它会在更现代版本的Mac上运行吗?我读过一些软件补丁,可以支持一些老版本的MacOS软件,但我不想给最终用户带来这样的不便。我不介意构建该软件的两个不同版本(例如,遗留版本和现代启动程序),但是必须构建五到十个不同版本的软件将是一个巨大的痛苦,如果可能的话,我宁愿避免这一点。
我为我在这个领域缺乏知识而道歉,我自己的研究只提供了非常有限的信息,我不愿浪费数周的时间去做一项徒劳无功的工作。
博士:我想用Xcode (C++)为Mac编写支持尽可能多版本操作系统的软件。如果我的目标是MacOSVersion10.1,我能指望它能在Mac的现代版本上运行吗?如果不是,要支持尽可能多的Mac版本,需要花费多少精力?
发布于 2020-01-26 00:27:01
你必须决定在什么地方切断支持,或者你必须在不同的特殊构建环境中构建多个版本的应用程序。
现代macOS (10.15)严格地说是64位x86-64,对32位应用程序的零支持。如果你建立在10.15,你甚至不能建立一个32位的图像.如果您这样做,它将被链接到不存在于旧版本操作系统上的库中。
MacOSX10.6是最新推出的32位x86版本,但也是操作系统的第一个64位版本,因为它代表了向64位的过渡。这也是最后一个发布的PowerPC版本。
如果您想支持PowerPC机器,这是10.1天中唯一的选择,那么您需要一个兼容的系统来构建它。
就生态系统而言,大多数Mac用户都能够运行当前版本的操作系统。任何2012+仍然能够获得当前的操作系统版本,这是很多硬件。在此之前的任何事情都是32位和PowerPC硬件的混合,尽管在野外你不会看到很多人拥有这样的系统。
简而言之,10.15是容易的,10.14和10.13并不难。除此之外的任何事情都将是不同程度的挑战,但超过10.6的事情将变得非常复杂。
估计受欢迎程度的一种方法是类似于蒸汽硬件测量的方法,其中的故障如下所示:
因此,好消息是,在10.13之后,情况急剧下降,到10.11,运行操作系统的用户不多了。
https://stackoverflow.com/questions/59914543
复制相似问题