用于 OSX 检测的 C 预处理器是否适用于 Mojave?
Does C preprocessor for OSX detection work on Mojave?
Mac OSX 的 C 预处理器是否无法正确使用 Mojave,还是我犯了一些愚蠢的错误?下面的代码编译但不会将 "test" 打印到控制台。
根据 https://sourceforge.net/p/predef/wiki/OperatingSystems/ 和多个 Stack Overflow 帖子,我查看了 __APPLE__
应该 可以做到这一点。我也试过 __MACH__
并使用 __APPLE__ && __MACH__
但这也不起作用。
我正在通过 gcc 在终端中编译。
有没有可能这些不适用于几周前才发布的最新版本 OSX?在更新到 Mojave 之前,我从来没有遇到过这个问题。
我也试过调用一个函数来代替 printf("test");
但结果是一样的。
#include <stdio.h>
int main()
{
#ifdef __APPLE__
printf("test");
#endif
return 0;
}
重新安装 GCC 似乎解决了问题。当我在终端中 运行 gcc -dM -E - < /dev/null
时,gcc 中缺少 #define __APPLE__ 1
。它在重新安装时返回。升级可能导致腐败。
Mac OSX 的 C 预处理器是否无法正确使用 Mojave,还是我犯了一些愚蠢的错误?下面的代码编译但不会将 "test" 打印到控制台。
根据 https://sourceforge.net/p/predef/wiki/OperatingSystems/ 和多个 Stack Overflow 帖子,我查看了 __APPLE__
应该 可以做到这一点。我也试过 __MACH__
并使用 __APPLE__ && __MACH__
但这也不起作用。
我正在通过 gcc 在终端中编译。
有没有可能这些不适用于几周前才发布的最新版本 OSX?在更新到 Mojave 之前,我从来没有遇到过这个问题。
我也试过调用一个函数来代替 printf("test");
但结果是一样的。
#include <stdio.h>
int main()
{
#ifdef __APPLE__
printf("test");
#endif
return 0;
}
重新安装 GCC 似乎解决了问题。当我在终端中 运行 gcc -dM -E - < /dev/null
时,gcc 中缺少 #define __APPLE__ 1
。它在重新安装时返回。升级可能导致腐败。