首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查Xlib是否使用#ifdef?

如何检查Xlib是否使用#ifdef?
EN

Stack Overflow用户
提问于 2017-03-06 21:28:16
回答 2查看 698关注 0票数 1

例如,您可以通过检查是否定义了"WIN32“宏来检查是否使用了Windows。我希望得到同样的行为,但是检查是否使用了Xlib。但是我不知道Xlib定义了什么来知道它的定义。如果你不知道我的意思,这里有一个例子:

代码语言:javascript
复制
#ifdef WIN32 //Check if WIN32 is defined
//Do something
#endif

我想改变这种情况,让它在Xlib使用时做一些事情。

如果有语法错误,我很抱歉,但我不是以英语为母语的人。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-07 02:01:26

只有在编译器标志( WIN32 )中包含宏之前包含宏或设置宏时,才定义宏WIN32。对于Xlib,如果之前包含了X_PROTOCOL,则可以使用非常类似的宏#include <X11/X.h>

代码语言:javascript
复制
#ifdef X_PROTOCOL //Check if X_PROTOCOL is defined
//Do something
#endif

另一种方法是使用_XLIB_H_,如果您以前包含了#include <X11/Xlib.h>,但是我不会使用,因为以下划线开头的标识符保留在实现中,并且不能保证这些标识符不会改变。

票数 2
EN

Stack Overflow用户

发布于 2017-03-09 14:51:18

您可以通过检查是否定义了"WIN32“宏来检查是否使用了Windows

默认情况下,针对Windows的编译器定义WIN32宏。其目的是让程序检测Windows,而不一定是任何图形子系统。

X11不是和操作系统。它是可选的userland软件,可以在包括Windows在内的许多操作系统下安装和运行。在为Windows编译X11程序时,将定义WIN32,就像对任何其他Windows程序一样。

在安装X11的系统上,默认情况下没有编译器定义任何内容。

如果您想在构建时检测X11,最好的选择可能是像或CMake这样的元构建工具。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42635893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档