【发布时间】:2018-11-11 01:32:55
【问题描述】:
我包含的一个头文件似乎只存在于 Linux 机器上,而不存在于 MacOS 机器上。虽然我可以使用 VM 来编译和运行代码,但如果能够在 MacOS 中执行此操作,那就太好了。
更具体地说,我正在使用#include <endian.h>,它在 Linux 上编译,我想在 MacOS 上使用 this compatibility header,我将在 #include "endian.h" 中包含它。前者包含在 Linux 机器上,后者包含在 MacOS 机器上,我的代码按预期编译和执行。
有没有办法在标头中使用特定于平台的包含(可能使用某种基于#if 的语法)?或者这是不好的做法?
【问题讨论】:
-
您可以在
#if和#endif行之间有一个#include行。如果这不能回答您的问题,您能否更具体一些? -
您发布的链接中有信息显示了如何执行此操作。
-
这个问题比@AlejandroVisiedo 链接的问题要具体得多——我问的是特定于平台的包含,而另一个问题是问的是特定于平台的宏。
-
@AlejandroVisiedo - 这是一个很好的“相关”链接,但答案(和 cmets)引用了断开的链接等。我不确定是否值得依靠那个来关闭这个作为权威答案。