我刚刚创建了一个使用Xcode并使用LLVM2.0编译的"C++标准动态“库项目。我注意到PCH文件包含行#include <iostream>,但文件Test.cp也包含#include <iostream>语句。
奇怪的是,通过删除Test.cp中的语句,尽管该语句也包含在PCH中,但错误Semantic Issue – Use of undeclared identifier 'std'仍然导致构建失败。
为什么PCH不起作用?我错过了什么环境吗?我以前从来没有对他们做过任何事情(因为他们总是在工作),所以我不知道是什么导致它不起作用,即使是一个全新的项目。
发布于 2010-10-17 07:31:42
预编译头用于加速编译。它们没有任何其他效果,特别是您仍然需要在需要它们的地方包含标头。
编辑-在Xcode中,pch文件实际上是一个前缀头,恰好是预编译的(带有默认的项目配置)。检查GCC_PRECOMPILE_PREFIX_HEADER和GCC_PREFIX_HEADER构建设置。
发布于 2013-04-24 05:20:37
删除派生数据(“窗口管理器”、“项目”选项卡、“选择项目”)以使XCode重新构建PCH的索引。此外,如果使用“单元测试”,则UnitTests目标将有一个单独的PCH。确保这还包括所需的导入。
https://stackoverflow.com/questions/3952222
复制相似问题