【发布时间】:2018-10-06 22:16:07
【问题描述】:
我试图编译stk。在配置过程中我收到错误
System/Library/Frameworks/CoreAudio.framework/Headers/AudioHardware.h:162:2: 错误:预期标识符或 '(' 在 '^' 标记之前 (^AudioObjectPropertyListenerBlock)(
当我看到代码时,我在 here 的第 162 行的函数指针声明中看到了 ^。我知道我们可以拥有*,但^ 是什么意思?
代码sn-p:
#if defined(__BLOCKS__)
typedef void
(^AudioObjectPropertyListenerBlock)( UInt32 inNumberAddresses,
const AudioObjectPropertyAddress inAddresses[]);
【问题讨论】:
-
这意味着你使用的不是 C++,而是 C++/CLI,这是微软对 C++ 的混蛋,是你通常不想使用的东西。
-
与 C++/CLI 无关(注意“MacOSX-SDKs”),Apple 这样做就可以了:stackoverflow.com/questions/1912023/caret-in-objective-c
-
Objective-C 不是 C; Objective-C++ 不是 C++。无论你编译什么文件都包含一个 Objective-C 头文件,所以源代码需要编译为 Objective-C 或 Objective-C++。
标签: c++-cli