2

我刚刚使用 Xcode 创建了一个“C++ 标准动态”库项目,并使用 LLVM 2.0 进行了编译。我注意到 PCH 文件包含该行#include <iostream>,但文件Test.cp也包含该#include <iostream>语句。

奇怪的是,通过删除Test.cp中的语句,构建失败并出现错误,Semantic Issue – Use of undeclared identifier 'std'尽管该语句也包含在 PCH 中。

为什么 PCH 不起作用?有没有我缺少的设置?我以前从来没有对他们做过任何事情(因为他们总是只是工作)所以我不确定是什么导致它不起作用,即使是一个全新的项目。

4

2 回答 2

1

删除派生数据(Window-Organizer,Projects 选项卡,选择您的项目)以让 XCode 为 PCH 重建索引。此外,如果您使用单元测试,则单元测试目标有一个单独的 PCH。确保这还包括所需的导入。

于 2013-04-24T05:20:37.927 回答
-1

预编译头文件用于加速编译。它们没有任何其他效果,特别是您仍然必须在需要它们的地方包含标题。

编辑 -在 Xcode 中,pch 文件实际上是一个恰好被预编译的前缀头文件(使用默认项目配置)。检查GCC_PRECOMPILE_PREFIX_HEADERGCC_PREFIX_HEADER构建设置。

于 2010-10-17T07:31:42.310 回答