我正在使用C ++开发游戏,并且依赖OpenGL的旧功能。
我主要在Windows计算机上进行编程,现在正在考虑扩展到Linux和Mac OS。作为个人挑战,我想保持我的软件尽可能向后兼容,并支持尽可能多的OS。使用Windows,我可以维持对Windows 95的支持(使用Visual Studio可以使我在此过程中遇到一些麻烦,但是仍然可以解决)。但是,我几乎不了解Mac OS,直到现在我才真正使用过它。考虑到我的软件在Windows 95上运行,它当然不需要任何高级功能。
Xcode的旧版本似乎支持的最低Mac OS版本是10.1.x。如果我要为此版本的Mac OS编写软件,那么它可以在更新版本的Mac OS上运行吗?我读过一些软件补丁程序,这些软件补丁程序可以从不支持某些较旧的MacOS软件,但我不想给最终用户带来不便。 我不介意构建该软件的两个不同版本(例如,传统启动程序和现代启动器),但是不得不构建五个或十个不同版本的软件将是一个巨大的痛苦,我宁愿尽可能避免这样做。
我为自己在该领域的知识不足而道歉,我自己的研究仅获得了非常有限的信息,我宁愿不花费数周的徒劳努力。
TL; DR:我想用适用于Mac OSX的Xcode(C ++)编写软件,以支持尽可能多的OS版本。如果我的目标是Mac OS版本10.1,我可以期望它在现代版本的Mac OS上运行吗?如果没有,那么要花多少精力才能支持尽可能多的Mac OS版本?
您将必须决定在哪里终止支持,或者必须在不同的特殊构建环境中构建该应用程序的多个版本。
现代macOS(10.15)严格来说仅是64位x86-64,对32位应用程序的零支持。如果您在10.15上构建,您甚至无法构建32位图像。如果这样做,它将与旧版本操作系统中不存在的库链接。
Mac OS X 10.6是发行的最后一个32位x86版本,但也是OS的第一个64位版本,因为它代表了向64位的过渡。它也是最后一个PowerPC版本。
如果要支持PowerPC机器(这是10.1天内的唯一选择),则需要一个兼容的系统来构建它。
从生态角度来看,大多数Mac用户都可以运行当前版本的OS。 2012+仍然可以获取当前的OS版本,这是很多硬件。之前的任何东西都是32位和PowerPC硬件的混合,尽管您不会看到很多人在野外使用类似的系统。
简而言之,10.15很容易,10.14和10.13不会很难。超过此限制将面临各种挑战,但超过10.6将会使事情变得极其复杂。