【问题标题】:Using $(BUILT_PRODUCTS_DIR) in User Header Search Path在用户标题搜索路径中使用 $(BUILT_PRODUCTS_DIR)
【发布时间】:2011-08-24 17:47:18
【问题描述】:

当我在User Header Search Path 中使用$(BUILT_PRODUCTS_DIR) 时(正如this 关于静态库的教程中所推荐的那样)XCode 4 会这样解决它:

这是我在使用模拟器时遇到的问题,因为构建文件存储在Debug-iphonesimulator 而不是Debug-iphoneos,XCode 无法找到标头。

我目前的解决方法是首先为 iOS 设备 构建,然后使用模拟器。这有点乏味且容易出错。我做错了什么?

【问题讨论】:

    标签: iphone ios build xcode4 header-files


    【解决方案1】:

    构建产品目录应该用于 Xcode 的输出,并且这些目录在您开始构建时不存在是完全合理的。不建议在这些目录中包含用户标头等依赖项。

    我的建议是将相关标头移出您正在谈论的目录。

    【讨论】:

    • 那么你建议如何在同一个工作空间中使用项目的静态库头文件?
    • 只要将其他项目的目标添加为直接依赖,这不是很好吗?
    • 对于 headers 我会将它们原样保留在他们的项目中并直接从那里引用它们 - 这将消除在编译任何东西之前构建依赖库的要求在可能使用它的客户端应用程序中。如果您愿意,您可以将那些“公共”标题与“私有”标题分开到它们自己的目录中,并且您的应用程序只会在公共文件夹中搜索标题。
    • 对于 library binaries,我知道您将在哪里遇到问题。可以使用构建目标信息窗口左下角的齿轮弹出窗口添加“构建设置条件”。从那里您可以根据目标(模拟器、设备等)指定值应该是什么,并可以使用它来告诉链接器在哪里寻找适当的库二进制文件。请注意,这将是链接应用程序的问题,而不是编译它。
    【解决方案2】:

    我遇到了同样的问题。我通过执行以下操作来修复它。我没有将 User Header Search Paths 设置为 $(BUILT_PRODUCTS_DIR)recursive,而是将其显式设置为 $(BUILT_PRODUCTS_DIR)/usr/local/includenon-recursive

    【讨论】:

    • 这到底是做什么的?当我使用它时,它不会找到任何其他库的东西。但是,如果我只使用${BUILT_PRODUCTS_DIR},那么我会在内部和外部使用文件时遇到问题。
    猜你喜欢
    • 2011-03-26
    • 2012-06-07
    • 2011-06-16
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 2013-07-13
    • 1970-01-01
    • 2013-03-14
    相关资源
    最近更新 更多