OS X 10.13上g ++-8的CoreGraphics错误

时间:2018-06-21 20:58:16

标签: c++ macos g++ core-graphics

我正在OS X 10.13.5上使用g ++ 8.1(来自Homebrew)来编译程序,其中包括CoreGraphics框架的一些标头。我从标头本身中得到了一些语法错误:

/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPath.h:391:15: error: expected unqualified-id before '^' token
 typedef void (^CGPathApplyBlock)(const CGPathElement * element);
               ^
/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPath.h:391:15: error: expected ')' before '^' token
 typedef void (^CGPathApplyBlock)(const CGPathElement * element);
              ~^
               )
/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPath.h:393:53: error: 'CGPathApplyBlock' has not been declared
 CG_EXTERN void CGPathApplyWithBlock(CGPathRef path, CGPathApplyBlock CF_NOESCAPE block)

一些谷歌搜索表明插入符号是某种托管指针(?),但尚不清楚OS X,g ++或clang是否支持该指针(我看到的唯一对此类语法的引用似乎是针对MSVC的)。

关于这里发生的事情以及如何解决或避免此错误的任何想法(理想情况下仍在使用g ++的情况下)?我曾经想到的是禁用对/ System的写保护,并修改这些标头以使用*而不是^,但是不确定这是否对帮助的危害更大。

0 个答案:

没有答案