如何确定预处理器中的操作系统和操作系统版本?
我想区分Solaris10和其他操作系统。
发布于 2012-12-25 08:08:07
正如Jan Dvorak所说,这取决于您所指的是主机系统(您正在编译的系统)还是目标系统(您的应用程序将在其上运行的系统)。
如果后来执行,则无法执行您想要的操作,原因很简单,即此信息仅在目标系统上的运行时可用,而预处理器仅在编译期间运行。
如果你以前是的,你的编译器应该提供一些预定义的宏,这些宏可以给你一些关于你正在编译的系统的信息。例如,当在Windows上使用MingW或MSVC进行编译时,_WIN32
宏将被定义为允许您有条件地包含代码。
但是,这不太可能为您提供所需的信息,因为在编译过程中,操作系统版本通常是无关紧要的-您需要的信息是您正在编译的操作系统(例如: Windows、Solaris)、哪个编译器版本等。
发布于 2013-01-11 11:17:44
为了扩展skoy的回答,对于任何想要确定正在编译程序的系统的信息的人来说,在sourceforge项目上有一个维基页面,其中列出了一些不同的东西的预定义宏列表,比如operating systems、architectures和compilers。
https://stackoverflow.com/questions/14028682
复制