【问题标题】:Xcode4 workspace sharing projectsXcode4 工作区共享项目
【发布时间】:2011-03-25 01:39:25
【问题描述】:

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

【问题讨论】:

    标签: xcode xcode4 shared-libraries xcode3to4


    【解决方案1】:

    经过几个令人沮丧的小时后,我可能找到了解决方案(仍然不确定它是否正确)。

    1. 创建了一个新工作区
    2. 添加了共享库项目
    3. 在共享库下添加了应用项目(不在里面)
    4. 打开共享库的构建阶段,并确保在复制标头时将其分组到公共
    5. 打开应用程序的构建设置并在“BUILD_PRODUCTS_DIR”\usr\local\include 中键入的标题搜索路径中
    6. 在目标的构建阶段,包含指向静态库(共享库)的链接

    进行了清理和构建,一切都已成功构建。

    但是,我仍然不相信这是正确的方法,因为根据 Xcode4 指南,不需要更改设置,只需将项目添加到工作区就可以了。总有一天,我希望找到正确的解决方案并使用它。

    谢谢 贾维德

    【讨论】:

    • 将 USER_HEADER_SEARCH_PATHS 设置为 $(TARGET_BUILD_DIR)/usr/local/include $(DSTROOT)/usr/local/include
    【解决方案2】:

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

    我所做的是为主目标的用户标题搜索路径构建设置设置一个值,指向库路径。只需在构建设置编辑器搜索框中输入“用户标题”,您就会找到它。

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

    一个更简单但不太灵活的替代方法是将库的标题拖到您的主项目中。

    【讨论】:

    • 感谢 Cris,我在 Xcode3 中以这种方式设置它并且效果很好,但我认为 Xcode4 工作区功能允许您设置项目并自动检测依赖项。想用 Xcode4 我可以最小化设置,但看起来不行。
    • 我曾希望得到同样的结果,但看起来 XCode 4 的“隐式依赖”功能更加有限:devforums.apple.com/message/383410#383410。我只说“看起来像”,因为 Apple 对该功能的文档很粗略。
    【解决方案3】:

    问题似乎在于 Xcode 环境变量报告了错误的位置。例如 $(TARGET_BUILD_DIR) 转换为:

    /build/Debug/

    ..但是在使用工作区时,会在该路径中插入一个额外的文件夹:

    /build/products/Debug

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

    【讨论】:

    • 有没有办法解决这个问题。我得出了同样的结论,$(BUILT_PRODUCTS_DIR) 在构建过程中很好,但在它只是为用户头路径执行代码完成时就不行了。看起来我们需要为头文件使用静态目录?
    猜你喜欢
    • 1970-01-01
    • 2020-08-25
    • 1970-01-01
    • 2011-07-13
    • 1970-01-01
    • 1970-01-01
    • 2011-07-18
    • 1970-01-01
    • 2017-03-24
    相关资源
    最近更新 更多