今天一同事问我,如何依不同的系统进行条件编译,平时我的机器都能补全提示,他的机器却不会补全,找了半天才找到,为了防止下次再发生这种事情,这里做一个总结。 如果是QT4,这个头文件得插入#include <qglobal.h>,如果是QT5,则可以插#include <qsystemdetection.h>,想跨平台,还是#include "qglobal.h"靠谱,这个qglobal.h里会包含qsystemdetection这个文件,还有一个很相似的名字glob.h,这个就风牛马不相及了。 QT系统中支持的系统如下: 上表就是QT支持的系统,已前好像还有黑莓和塞班,现在没有了。如果你要用他对应的宏,还得加一个前缀:Q_OS_XXX,比如说要区分linux,则使用Q_OS_LINUX,XXX指的就是LINUX。 注意事项: 1. 在ANDROID平台上,Q_OS_LINUX 和 Q_OS_ANDROID都有定义,其它情况下就只定义了Q_OS_LINUX。 2. 如果在FreeBSD with a BSD userland上,则仅定义了Q_OS_FREEBSD