1

我正在使用 Xcode 6 beta 6 构建一个应用程序。我手动添加了一个前缀文件,并在 Build Settings: 中指定了它$(SRCROOT)/$(PRODUCT_NAME)/MyApp-Prefix.pch。该文件编译,并且在那里定义的符号没有在编辑器中突出显示为未声明。但是,当我构建项目时,我收到前缀文件中定义的宏的“未声明的标识符”错误。这是怎么回事?

我试过的:

  • 将 Precompile Prefix Headers 设置为 YES(默认为 NO)
  • 清理构建文件夹并删除派生数据文件夹

有趣的是 .pch 文件肯定是在构建时编译的。如果我在那里引入语法错误,它会在构建结果中被调用。如果 pch 文件编译正常,则编译器在构建使用它的文件时开始表现得好像找不到它。

4

3 回答 3

2

您应该将文件名添加到不带 $(SRCROOT) 的“Prefix Header”部分。仅将 Precompile Prefix Headers 设置为 YES 是不够的。

  1. 新建文件:⌘cmd+N
  2. iOS/Mac > 其他 > PCH 文件 > YourProject-Prefix.pch。
  3. 项目>构建设置>搜索:“前缀标题”。
  4. 在“Apple LLVM 6.0”下,您将获得 Prefix Header 键。
  5. 输入:“MyApp/MyApp-Prefix.pch”。(没有 $(SRCROOT) !!!)
  6. 清理项目:⌘cmd+⇧shift+K
  7. 构建项目:⌘cmd+B

有关更多详细信息,请查看https://stackoverflow.com/a/26126065/3628317答案。

它适用于 XCode 6.1。

于 2014-12-15T10:55:54.457 回答
0

作为第一个猜测,你有一个预编译的头文件,它没有意识到你已经更改了 .pch,所以它仍然使用旧版本的预编译文件。

清理您的项目,然后进入 Window > Organizer > Projects > $(PRODUCT_NAME) 并删除派生数据。

于 2014-08-28T19:39:12.720 回答
0

有时您可能只是删除方案或目标并重新创建一个新方案。

于 2017-03-13T06:47:52.543 回答