iOS,CoreAudio:一个奇怪的'CADebugPrintf.h:没有这样的文件或目录......'错误

Posted

技术标签:

【中文标题】iOS,CoreAudio:一个奇怪的\'CADebugPrintf.h:没有这样的文件或目录......\'错误【英文标题】:iOS,CoreAudio: a strange 'CADebugPrintf.h: no such file or directory ... ' erroriOS,CoreAudio:一个奇怪的'CADebugPrintf.h:没有这样的文件或目录......'错误 【发布时间】:2011-06-22 10:45:27 【问题描述】:

在一些与音频相关的Apple示例代码的'iPublicUtility'文件夹中有一堆帮助文件,例如aurioTouch: http://developer.apple.com/library/ios/#samplecode/aurioTouch/Introduction/Intro.html

我可以很好地构建这些样本。但是,每当我创建一个新项目进行测试并包含“iPublicUtility”文件夹中的文件时,我都会得到: 'CADebugPrintf.h: no such file or directory ...' 'CADebugMacros.h' 文件中的错误。

我将我的测试项目的设置设置为与 Apple 示例一致,但此错误是 不走。有什么建议吗?

SDK:iOS 4.2, iMac OSX 10.6.6

谢谢大家。

sy

【问题讨论】:

【参考方案1】:

选择目标,打开构建设置窗格,搜索“预处理器宏”。将字段留空(我已经删除了一个 DEBUG 条目)

【讨论】:

谢谢你...有点蹩脚,我不得不删除我的调试宏。 谢谢。你救了我的命。 似乎是一个糟糕的解决方案,可能会产生广泛的调试效果 - 添加丢失的文件是正确的:developer.apple.com/library/content/samplecode/…【参考方案2】:

我使用了 Justin 提供的答案,它运行良好,直到我安装了 Xcode 4.3.1 并且问题又出现了。

目前我通过下载 CADebugPrintf.h 和 .cpp 解决了这个问题。

我在这个链接找到了 2 个文件:

http://svn.perian.org/trunk/CoreAudio/PublicUtility/

干杯。

【讨论】:

太棒了,谢谢。我将这些文件下载到我的应用程序中已经包含的 iPublicUtility 文件夹中,并将它们添加到 Xcode 项目中,然后能够再次构建应用程序。我猜我们不再需要 Header Search Paths 构建设置;如果是这样的话,无论如何这是一个更简单的解决方案。 @justinkoh:伙计……我也这样做了。但这对我不起作用。 将文件添加到项目后,请务必转到 Targets > Build Phases > Compile Sources,并确保 2 个文件在列表中。如果没有,添加它,然后构建。 那个版本 (1.0.1) 已经过时了 - 我会去这里看 v1.1:developer.apple.com/library/content/samplecode/…【参考方案3】:

我安装了三个 Xcode 发行版。

该文件存在于所有三个中。

1) 验证文件是否存在于您的系统中。

2a) 为您的项目添加 PublicUtility 目录的搜索路径

2b) 将标头添加到目标的“复制标头”构建阶段

根据您对这些文件有多少依赖,您可能需要更可靠的方法(存在)。如果您使用大量音频技术和源,一种(相当)安全/简单的方法是将其父目录的父目录添加到您的搜索路径或源树(递归)。

另一种方法是将其添加到共享构建设置文件中。

您还可以在某处复制特定版本,然后将其添加到您的搜索路径中。请注意,资源会定期更新,因此您必须在合适的时候进行更新。在这种情况下,您也应该更改项目引用。

编辑:添加搜索路径 (2a)

一种添加搜索路径的方法(假设 Xcode 工具安装在:/Developer/):

1) 在 Xcode (3) 中,选择目标。

2) cmd+i (获取信息)

3) 选择信息窗口的“构建”选项卡

4) 在搜索字段中输入 HEADER_SEARCH_PATHS

5) 如果该值未在此级别定义(例如,它不是粗体),则将该值设置为 /Developer/Extras/CoreAudio/PublicUtility/$(inherited)

如果已在该级别定义,则将 /Developer/Extras/CoreAudio/PublicUtility/ 添加到要搜索的目录列表(值)。

如果您想递归搜索库,请使用 /Developer/Extras/CoreAudio/**。这在构建 AU 或其他需要 AU 包含和 PublicUtility 包含的项目时可能很有用。

【讨论】:

感谢您的评论。但我仍然感到困惑:1)在“CADebugMacros.h”中发现了错误,这是来自 iPublicUtility 文件夹(来自 Apple 示例)的文件之一。它似乎没有找到“CADebugPrintf.h”。我检查了一下,它位于“Developer/Extra/CoreAudio/PublicUtility”文件夹中。 2a) 我假设默认设置没问题,并且“aurioTouch”示例没有额外的搜索路径。反正做了,没救了。 2b)如何?最让我困惑的是Apple示例构建良好,只是当我开始一个新项目时,我不知道我缺少什么设置/标志。 @user605702 已更新。请参阅:“编辑:添加搜索路径 (2a)”前进 贾斯汀很有钱。将 /Developer/Extras/CoreAudio/PublicUtility/$(inherited) 添加到标头搜索路径中即可。【参考方案4】:

同样的问题,但似乎已通过从下面的链接下载并添加丢失的 CADebugPrintf.h 和 CADebugPrintf.cpp 文件来解决它。

https://developer.apple.com/library/ios/samplecode/CoreAudioUtilityClasses/Listings/CoreAudio_PublicUtility_CADebugPrintf_h.html

【讨论】:

【参考方案5】:

我遇到了同样的问题,将文件下载到 iPublicUtility 文件夹并没有解决。在本页了解 .mm 扩展文件时无意中找到了答案:

Objective C Project using C++ POSIX Classes

我用 .mm 重命名了我的实现文件,编译器错误消失了。希望这可以帮助某人!

【讨论】:

以上是关于iOS,CoreAudio:一个奇怪的'CADebugPrintf.h:没有这样的文件或目录......'错误的主要内容,如果未能解决你的问题,请参考以下文章

CoreAudio,iOS:无法通过 RemoteIO 使用单声道输入和立体声输出

混合声波(iOS 上的 CoreAudio)

iOS 5/6:首次使用 CoreAudio 后音量变小

OSX:用于设置 IO 缓冲区长度的 CoreAudio API?

如何在 iOS 下使用设备上的 CoreAudio 以编程方式创建一定长度的空 .m4a 文件?

使用 CoreAudio 以编程方式在 Swift 中创建聚合音频设备