1

我可以如何确定预处理器中的操作系统和操作系统版本?

我想划分 Solaris 10 和其他操作系统。

4

2 回答 2

1

正如 Jan Dvorak 所说,这取决于您是指主机系统(您正在编译的系统)还是目标系统(您的应用程序将在其上运行的系统)。

如果是后者,则无法执行您想要的操作,原因很简单,该信息仅在目标系统的运行时可用,而预处理器仅在编译期间运行。

如果是前者,你的编译器应该提供预定义的 MACROS,它会给你一些关于你正在编译的系统的信息。例如,在 Windows 上使用 MingW 或 MSVC 进行编译时,_WIN32将定义宏以允许您有条件地包含代码。

但是,这不太可能为您提供您寻求的信息,因为操作系统版本通常在编译期间无关紧要 - 您想要的信息是您正在编译操作系统(例如:Windows、Solaris)、哪个编译器版本等。

于 2012-12-25T08:08:06.627 回答
0

为了扩展 skoy 的答案,对于任何希望确定正在编译程序的系统的信息的人,sourceforge 项目上有一个 wiki 页面,其中列出了用于几个不同事物(例如操作系统)的大多数预定义宏的列表,架构编译器

于 2013-01-11T11:17:44.123 回答