3
为什么编译器通常只为安装它们的平台生成可执行文件?
我是C ++开发人员,为了更好地理解跨平台开发,我试图更好地了解编译器的一些实现细节以及它们如何精确创建OS特定的二进制文件。在研究过程中,我意识到,至少有一段时间,您为特定平台下载的大多数编译器仅针对该平台编译了二进制文件。因此,如果您下载了Windows编译器exe附带的IDE,则该编译器将只能针对x86-x64 Windows应用程序而非Linux或Mac应用程序编译程序。 现在,我了解到不同的平台需要不同的二进制格式,但是为什么说Windows上的可视C ++编译器很难生成Linux二进制可执行文件呢?只要您具有运行CPU的汇编指令以及特定于OS的库,您是否不应该能够在任何计算机上为任何平台编译可执行文件?