背景
我正在尝试使用LSGetApplicationForURL
API 并在这里找到了一个非常有用的示例 -如何在 mac os x 上获取默认邮件客户端版本?
但是,当我尝试编译代码时,出现此错误:
/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/MachineExceptions.h:53:错误:声明未声明任何内容
当我在第 53 行附近打开 MachineExceptions 时,我看到了unsignedwide
一些MacTypes.h
. 我发现这是碳核心框架的一部分。
对于初学者,我只在我的代码中包含顶级标题(实际上,使用上面示例中的确切示例代码)。所以,我不包括/接触MachineException.h
或任何其他头文件。虽然,显然似乎存在一些最终导致此错误的依赖项。
我尝试/研究过的一些事情:
- 我发现 Carbon Core 在 10.8(我正在使用的版本)中已被弃用 - https://developer.apple.com/library/mac/#releasenotes/General/CarbonCoreDeprecations/
结果,
MacTypes.h
在 Carbon Core框架相当贫乏,有条件地包含MacTypes.h
在 /usr/include/ - 根据上面“已弃用”页面上的信息,我已尝试编辑
MacTypes.h
(在 Carbon Core 框架中)和 MachineExceptions.h 以包含 /usr/include 中的 MacTypes。 - 切换了包含头文件的顺序(在我研究这个时为其他人工作)。
- 我在我的 makefile 中包含了 CoreFoundation 和 ApplicationServices 框架(使用“-framework”选项)
非常感谢有关此问题的任何反馈,因为我花了很多时间试图解决这个问题。如果这里有什么是基本的/基本的,我提前道歉。我对 Mac OS 编程非常陌生,并试图了解框架是如何连接的,以及如何使用它们。
谢谢!