【发布时间】:2013-03-04 22:28:41
【问题描述】:
当有人试图在 WIN32 和 LINUX 以外的其他系统下编译我的代码时,我想显示错误。但是这段代码:
#ifdef WIN32
// Some code here for windows
#elif LINUX
// Some code for linux
#else
#error OS unsupported!
#endif
但这给了我一个错误:
#error 操作系统不支持
并且编译器没有说别的,只是错误。 怎么了?
【问题讨论】:
-
我会说
WIN32没有定义,LINUX要么没有定义要么为零。 -
你是在 iOS 上编译吗?
-
@JonathanWakely 没关系 LuchianGrigore 不,在 Debian 7 上
-
什么意思没关系?
LINUX未在 Linux 上定义,因此对其进行测试毫无意义。 OTOH__linux是自动定义的。 -
您是否应该优先检查
_WIN32而不是WIN32?根据stackoverflow.com/q/662084/311966,只有_WIN32保证在没有系统包含的情况下被定义。
标签: c++ compiler-errors g++ c-preprocessor