【发布时间】:2011-05-20 19:08:18
【问题描述】:
如何在 C++/C 中检测操作系统是否为 Windows?
【问题讨论】:
-
如何编译二进制兼容多种操作系统的代码?
-
你问的是编译时间,还是运行时间?
-
运行时,程序运行时
-
您根本不必这样做,因为您必须构建在 Windows 上运行的代码,并且这与您为 Linux、Mac 或 FreeBSD 等构建的二进制文件不兼容. 阅读您的其他 cmets,您真正想要的是编译时确定专门为 Windows 构建代码。
-
当您将程序编译为“本机代码”(特定于 CPU 的机器代码)时,您通常必须针对生成的可执行文件能够在其上运行的特定操作系统(通常是其版本) .这与解释型语言(如 Ruby 或 Java)不同,其中存在本地代码程序来读取源代码或其表示程序的表示(“字节码”)。尽管如此,你还是可以编译一个 Windows 程序并在 Windows 模拟器下运行它,比如 Linux 的 WINE,这是你想要能够识别的吗?