我刚刚将我的 Mac 升级到 Mavericks,发现我的 C++ 代码都无法编译了。一切都失败并出现以下错误:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__config:147:22:错误:令牌“(”之前缺少二进制运算符
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__config:176:18:错误:令牌“(”之前缺少二进制运算符
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__config:184:19:错误:令牌“(”之前缺少二进制运算符
等等
我不知道那个文件是什么,但它似乎包含在许多标准头文件中,比如 cassert 和 string。我查了一下,这是第 147 行:
# if __has_attribute(type_visibility)
知道发生了什么吗?所有这些代码在升级之前都能完美运行。我还确保 Xcode 完全是最新的(5.0.1)。