这是我一直想知道的事情.
以记事本++为例.维基百科告诉我它是用C++编写的,它只是Windows版本.
现在拿PHP.维基百科告诉我这也是用C++编写的,但也可以在其他操作系统上运行.
但我看到更多语言,然后只是C++ for PHP ...这是怎么做到的?他们是否在C++中创建了一些新代码,看到它有效,然后弄清楚如何在Perl中执行它,或者会发生什么?
这取决于您是否使用特定于平台的库.Notepad ++是一个桌面应用程序,它需要一个GUI工具包.虽然有像Qt和wxWidgets这样的跨平台C++库,但Notepad ++可能正在使用微软的特定技术.因此它无法移植到其他平台中.
另一方面,PHP是一种WEB脚本技术,因此不需要GUI库.与Notepad ++相比,在许多平台上运行PHP的兴趣要大得多.这是开发人员制作C++代码跨平台的动机.
避免使用特定于平台的库不是C++跨平台应用程序所需的唯一内容.它通常意味着编码最小公分母并为每个支持的平台保留不同的代码分支.虽然C++是一种跨平台语言,但每个系统都有自己的复杂性.事实上,如果要使用不同的编译器,代码在同一平台上也可能不同.尝试下载开源应用程序的C++源代码,例如PHP.您会注意到所有平台的大部分代码都是相同的,但也会有不同的位.有时使用预处理程序指令,其他地方涉及完全不同的源文件.
因此,创建一个真正的跨平台C++应用程序是一项艰巨的工作,它通常是在有强烈动机的情况下创建的,而且很多人都参与其中.像Notepad ++这样的单人应用程序实际上不能跨平台.