这个问题在过去几周内已经发展,以涵盖xcode4的更多一般性问题(以及从旧xcode升级项目)。
然而,许多问题可以通过遵循相同的指令集来解决。
如果您遇到以下任何问题,请尝试接受答案中的方法:
标题:Xcode 4中“未找到词汇或预处理器问题文件”
我在Xcode 4中有一个项目,可以在设备和模拟器上运行良好,但在寻找与静态库关联的头文件时尝试归档它时出错:
In file included from /Volumes/Development/Path/LBProject/LBProject/LBProject-Prefix.pch:15:
In file included from /Volumes/Development/Path/LBProject/LBFDefines.h:23:
In file included from /Volumes/Development/Path/LBProject/Classes/LBProjectAppDelegate.h:11:
In file included from /Volumes/Development/Path/LBProject/LBProject/../FKNDirectory/FKNDirectoryManager.h:10:
/Volumes/Development/Path/LBProject/LBProject/../FKNDirectory/FKNDataModel.h:11:9: fatal error: 'Merchant.h' file not found [1]
#import "Merchant.h"
^
1 error generated.
Xcode给出错误
lexical or preprocessor issue file not found
很多 Google搜索显示许多人遇到此问题但没有解决方案。任何人都得到了修复甚至线索。
更新:user header
搜索路径在所有配置中都设置为${BUILT_PRODUCTS_DIR}
。除了归档时,它使用任何配置构建良好。
更新2: Merchant.h
是一个自动生成的Core Data类,因此位于.xcdatamodeld
包内,但是当所有标头都被复制到公共标头目录时图书馆已建成。
答案 0 :(得分:118)
注意:以下步骤将解决90%的Xcode存档问题 但是,根据评论建议您尝试quitting Xcode 第一。这可以节省您设置调整的时间。
$(LOCAL_APPS_DIR)
答案 1 :(得分:13)
我在XCode 4中遇到了同样的问题:“未找到词法或预处理器问题MyFile.h”。但是,MyFile.m不是一个静态库,只是一个标准类。并且MyFile.m和MyFile.h被正确包含在项目中并编入索引。
所以...我退出XCode和模拟器,然后重新启动它们,问题就消失了。
答案 2 :(得分:11)
当我将目标构建设置“扫描包含的所有源文件”从no更改为yes时,我发现问题消失了。
答案 3 :(得分:6)
通过简单地将.h文件复制到finder中的Project目录中,我能够解决此问题,而无需对任何构建设置进行任何更改。我根本没有将它们添加到项目中。将它们放在项目的文件系统目录中似乎足以让Xcode的隐式链接正常工作。更多详情here。
答案 4 :(得分:4)
我有一个像这样的奇怪问题。将“扫描所有资源文件...”更改为“是”没有帮助。我看了一下框架搜索路径,注意到我有
似乎没错,但仍然失败了。然后我尝试重新排列2&的顺序。 3,突然间它建好了。所以不确定为什么那是hickup,但是想把它添加到事情列表中以防万一它可以帮助别人。
答案 5 :(得分:3)
我的解决方案是改变我的
#import "HeaderFile.h"
到
#import <FrameworkName/HeaderFile.h>
一切都开始了。 不寻常的是它在建造后突然停止工作 几次。
答案 6 :(得分:2)
设置
时问题自行解决构建设置 - &gt;项目 - &gt;搜索路径为是
答案 7 :(得分:2)
我的项目中有2个目标( Project 和 ProjectTest 的GHUnit
)。当我的方案设置为 Project 时,<GHUnitIOS/GHUnit.h>
的导入是“lexical或preprocessor issue file not found”的问题。但是当我设置为 ProjectTest 的方案时,一切都还可以。所以,我也在 Project 中添加了GHUnitIOS.framework
。
答案 8 :(得分:1)
在主动方案的构建设置中,您的标头搜索路径看起来不正确。验证它们并使用当前设置更新您的问题。
答案 9 :(得分:1)
我在模拟器上遇到类似的问题,但设备没有,我的标题搜索路径字段为空(似乎是默认值)。但改变工作空间似乎已经解决了这个问题。也许您可以尝试创建一个新的工作区,将项目添加到它,看看是否有帮助。现在我正在调查原因。
答案 10 :(得分:1)
我的项目中的某个特定.h文件出现了“找不到文件”错误。我通过从项目中删除该.h文件(选择“删除引用”)并重新添加它来解决该问题。
答案 11 :(得分:1)
添加更多变体:我在foo.m
构建阶段有两个Compile Source
个实例,其中一些是foo.h
导致“未找到标题”的原因。
答案 12 :(得分:1)
另一个机会:
在工作区项目中:在Target中查看Build Phases部分。正如许多手册所说,你需要有一个复制文件构建阶段将所有标题复制到另一个地方,因为iOS Framework不能包含要共享的头文件(这是我的情况)。
选择“将文件复制为目标”选项“产品目录”。或者标题所在的另一个目录。
这对我有用。可能Archive(或Release)目录的构建与Debug的构建中的预期非常不同。
同时检查您的工作区设置您的构建目录。
XD
答案 13 :(得分:0)
对我来说,这个问题发生在我向项目添加新文件之后;从NSObject派生的空白.m和.h。以下是我如何解决它:
然后我重新添加它们,它也起作用。
绝对是xCode中的错误...