我正在编写一个跨平台的代码,应该在linux,windows,Mac OS上编译。在Windows上,我必须支持Visual Studio和mingw。
有一些特定于平台的代码,应该放在#ifdef .. #endif
环境中。例如,在这里我放置了win32特定的代码:
#ifdef WIN32
#include <windows.h>
#endif
但是如何识别linux和mac OS?我应该使用什么定义名称(或其他名称)?
3
这是OS宏定义列表。
—
OCaml
该骗局有一个更好接受的答案。
—
rubenvb 2013年
建议的重复项不是同一问题。该问题仅询问有关标识操作系统的问题,而此问题也询问有关标识编译器的问题,这是非常不同的事情。
—
JBentley 2014年
@JBentley尚未接受的答案甚至没有提到编译器,仅谈论OS(和一个“平台”)。更不用说相对于骗局所提供的答案了。
—
rubenvb
@rubenvb然后链接另一个问题作为评论。仅仅因为它有一个更好的答案,就不会使其重复。问题是什么决定它是否是重复项,而不是答案。结束这一问题只能确保我们永远无法获得与问题相关的编译器相关部分的优质答案,所谓的“重复”永远无法回答。
—
JBentley