如何确定我正在编译的MacOS版本?

时间:2012-03-12 15:01:15

标签: c++ macos compilation cross-platform

我正在有条件地编译:

#ifdef WIN32
  myVal = "Windows";
#elif __APPLE__
  myVal = "Apple";
#endif

我可以在__APPLE__块中测试一个值来测试不同版本(10.4,10.5,10.6等)吗?

2 个答案:

答案 0 :(得分:2)

您应该使用/usr/include/AvailabilityMacros.h宏。有关讨论,请参阅TN2064,以及此文件中的标题注释。

答案 1 :(得分:2)

如果您正在尝试检查编译器的环境,请尝试uname -v

具体来说,我认为您可以uname -v | sed 's/Darwin Kernel Version \([^ ]*\):.*/\1/'获取,例如" 10.5"