编译器如何确定它在哪个平台上运行?

时间:2015-07-08 07:49:58

标签: compiler-construction

如果在两个不同的操作系统上支持应用程序。每个操作系统都有一个特定的实现。我想知道编译器如何知道它在哪个平台上运行,以便它编译实现X而不是Y.

2 个答案:

答案 0 :(得分:3)

编译器通常采用以高级语言编写的程序(例如,C,Rust,Go),并为特定的OS和体系结构生成可执行文件。如果您的编译器可以支持多个操作系统和体系结构,那么您可能会通过命令行标志或某些配置文件传递适当的参数。编译器还可以尝试通过诸如" OS"等环境变量来推断目标OS(假设目标OS与运行编译器的OS相同)。和" PROCESSOR_ARCHITECTURE"。

答案 1 :(得分:2)

目标平台由编译器使用命令行标志确定,命令行标志由IDE或开发人员提供。例如,gcc为-m32标志,MinGW为-mwindow。您可以在编译器文档中看到完整的这些标志集。