如果编译器将高级语言(例如 C++)转换为要由微处理器执行的机器代码。
为什么在 Windows 上运行的程序不能在 Mac 或 Linux 上运行?
只要一个高级程序真的 100% 用 C++ 或其他语言编写并且完全不使用任何外部代码,事实上,用编译器让它在任何操作系统上编译都相对容易,而且它的行为也一样方法。
困难在于几乎每个程序都使用操作系统的库,例如用于输入/输出、UI 绘图等,而这些在阳光下的每个操作系统上都是不同的。在实践中,如果不利用操作系统或操作系统附带的库中存在的大量帮助代码,就不可能在计算机程序中完成任何实际操作。这就是让移植变得更加困难的原因——通常实际上并不困难,只是很乏味。
因为您的很多调用都引用了操作系统的元素。像绘图,访问文件系统。这些调用必须翻译,如 Java 或 Qt。