2011-05-31 119 views
7

我所需的设置是一个主项目,它依赖于一个子项目(它会生成一个静态库)。将子项目添加到Xcode中可以正常工作,但正如您所期望的那样,您必须将User Header Search路径设置为包含子项目的文件夹,除非您想明确地将子项目的文件添加到主项目中,这样做会失败该子项目。在Xcode 4中,设置用户标题搜索路径中断代码意义

从我所知道的情况来看,设置用户标题搜索路径会在下次打开项目时打破代码感和主要项目中的“跳转到定义”导航。

下面是一个示例,超级简单,股票的项目,说明了这个问题:

http://dl.dropbox.com/u/579169/MainProject.zip

如果你去到应用程序委托,并尝试跳转到上一个属性引用,说self.window, Xcode只是给你一个它所知道的所有“窗口”属性的列表。同样,自动填充功能无法正常工作。

如果删除用户标题搜索路径,请关闭项目并重新打开它,代码感应按预期工作。

我已经提交了一个苹果的错误,但想知道是否有人遇到了这个特定的问题,或者有一个合理的解决方法。删除项目“派生”生成文件夹以触发重新索引不能可靠地工作。

+0

在情况下,它相关的 - 如果我有在不导致任何文件的用户头搜索路径条目被列入(例如,关闭递归标志时头文件嵌套在子文件夹中,或者指定一些随机的空目录),然后代码感应工作正常(或当然它不能编译) – 2011-05-31 18:09:57

回答

1

我向Apple报告了这一情况,他们报告说它在XCode 4.1(仅限于Lion)中于2011年6月6日修复。我还没有确认修复,因为我没有将我的开发机器升级到Lion测试版。

+0

感谢这个信息杜安。我花了一段时间试图解决这个问题。猜猜我必须等待修复(并被迫升级) – Ian1971 2011-07-21 11:00:03

2

解决办法是在静态库中公开头文件。然后添加以下到用户头搜索路径

"${BUILT_PRODUCTS_DIR}/usr/local/include/"