2011-03-25 80 views
3

我正在尝试使用新的Xcode4工作区功能来迁移它们之间具有依赖关系的一些Xcode3项目。我有一个项目,它创建一个静态库,然后创建一个依赖于静态库的应用程序项目。因此,如上所述,我创建了一个新的工作区,并将两个项目拖入工作区。但是,当我构建我的应用程序时,无法从我的静态库中找到头文件。我得到“没有这样的文件或目录”错误。我的意图是让Xcode自动检测依赖关系。但是,不知道我做错了什么,我无法让它工作。 任何帮助,不胜感激。这里也没有太多的文档。Xcode4工作区共享项目

回答

2

至少有几种方法可以解决这个问题。

我所做的是为主目标的User Header Search Path构建设置设置一个值,指向库路径。只需在编译设置编辑器搜索框中输入'user header',就可以找到它。

如果您正在使用一个您打算经常使用的库,最好为它设置一个源树设置。这是在XCode Prefs - > Source Trees中。添加一个条目,放入库源的路径,并给它一个合理的设置名称,例如。 XXLIBRARY_SOURCE。然后在用户头部搜索路径(或任何其他需要库路径的生成设置)中,可以使用$(XXLIBRARY_SOURCE)作为路径。

一个简单但不太灵活的替代方案是拖动库的头文件到您的主项目。

+2

感谢Cris,我在Xcode3中以这种方式设置了它,并且效果很好,但是认为Xcode4工作区功能允许您设置项目并自动检测依赖关系。用Xcode4思考我可以最小化设置,但看起来不是。 – user320587 2011-03-25 15:10:39

+0

我曾希望得到同样的东西,但它看起来像XCode 4'隐式依赖'功能是更加有限的:https://devforums.apple.com/message/383410#383410。我只说'看起来像',因为Apple的这个功能文档很粗略。 – Cris 2011-03-26 00:22:20

3

几个令人沮丧小时后,我可能已经找到了解决方案(不知道如果这是正确的方式)。

  1. 创建一个新的工作区
  2. 添加共享库项目
  3. 添加(内未)以下共享库的应用程序项目
  4. 打开构建共享库的阶段,并复制它是分组头时,确信公共
  5. 开放构建应用程序并在目标的构建阶段,并在“BUILD_PRODUCTS_DIR”类型的\ usr \本地\页眉搜索路径包括:
  6. 设置,包括静态库的链接(S hared库)

做了全新和建设,一切都顺利建成。

不过,我仍然不相信这是正确的方式,如根据Xcode4指导,设置没有变化是必要的,只是增加项目工作区将打理一切。有一天,我希望找到正确的解决方案并使用它。

感谢 Javid

+1

将USER_HEADER_SEARCH_PATHS设置为$(TARGET_BUILD_DIR)/ usr/local/include $(DSTROOT)/ usr/local/include – ShahidAzim 2011-05-30 17:15:19

2

的问题似乎在于与Xcode的环境变量报告错误的位置。比如$(TARGET_BUILD_DIR)翻译为:

/编译/调试/

..但使用工作区时,一个额外的文件夹被插入到该路径:

/编译/产品/调试

..这Xcode中似乎忽略或无法处理。

+0

有没有办法解决这个问题。我已经得出同样的结论,$(BUILT_PRODUCTS_DIR)在构建过程中没有问题,但是它只是在为用户头部路径完成代码完成时没有问题。看起来我们需要为头文件使用静态目录? – Matt 2012-12-11 07:20:40