3

我有一个静态库项目,它构建 .h 和 .m 文件并将它们放入 ${DERIVED_FILES_DIR}。这工作正常。但是,当库项目添加为子项目时,我无法弄清楚如何引用它们。

当我将此项目添加为子项目时,它会构建并将输出放置到 Build/Intermediates/SubProj.build/Debug-iphonesimulator/SubProj.build/DerivedSources 的父项目路径中。

我如何告诉 xcode 在包含项目中使用这些中间体?

或者,我如何修改子项目以将它们复制到产品目录中,它们可能会被父项目拾取?

4

2 回答 2

4

我通过在库项目中添加一个运行脚本构建阶段来解决这个问题,该阶段使用此脚本复制派生文件:

cp -a ${DERIVED_FILES_DIR}/*.h ${BUILT_PRODUCTS_DIR}

然后,当将此库添加到另一个项目时,我在 Build Settings 下添加了一个 User Header Search Path 作为

${BUILT_PRODUCTS_DIR}

一定要选择递归。

于 2012-10-20T18:15:57.467 回答
0

DERIVED_FILES_DIR用于在构建期间自动生成的文件,并且应该由相同的构建使用。放置在该位置的文件应该与 Xcode 中的“构建规则”匹配,在这种情况下,Xcode 将根据此规则自动构建它们(例如,生成.c的文件由 Xcode 自动构建并链接到您当前的目标二进制文件),或者它们用作输入另一个脚本阶段。

如果您的目标是另一个目标使用的静态库(同一个项目或其他项目无关紧要),那么静态库及其头文件是您当前构建的实际构建产品,因此都应该进入BUILT_PRODUCTS_DIRXcode 将如果其他目标引用它们,请找到它们。

于 2021-08-17T13:32:18.250 回答