这是我的情况:
ProjectA-Xcode静态库项目。
ProjectA包含带有代码ExternLib.h的逻辑代码组ExternLib。 ExternLib.h本身位于Classes / lib / ExternLib文件夹中(相对于ProjectA文件夹)。在ProjectA中,我将ExternLib.h用作:#import“ExternLib.h”。这很好。

接下来,我有ProjectB。这包括ProjectA作为链接的Xcode项目。已正确添加了目标等。但是,当我在ProjectB中包含一个文件,而该文件又包括ExternLib.h时,在构建ProjectB时,我会收到一条错误消息,指出找不到文件ExternLib.h。

我尝试将ExternLib.h的路径添加到标头搜索路径(所有类型:相对,绝对,具有递归等),但无济于事。我检查了静态库目标是否具有复制头步骤,并在其中包含文件ExternLib.h。

有人能够阐明如何解决这个问题吗?

最佳答案

  • 将执行脚本构建阶段添加到要执行的ExternLib的目标中
    mkdir -p "${BUILT_PRODUCTS_DIR}ExternLibHeaders"
    
  • 添加一个“复制文件”构建阶段,该阶段将ExternLib标头文件复制到${BUILT_PRODUCTS_DIR}ExternLibHeaders中,并将所有ExternLib的标头添加到该阶段。
  • 在ProjectB的应用程序目标中,将${BUILT_PRODUCTS_DIR}/ExternLibHeaders/添加到所有配置的标题搜索路径中。
  • 在“Xcode”>“首选项”>“构建”中,将“构建产品目录”设置为某个常见位置。

  • 第四步至关重要。它确保两个项目的BUILT_PRODUCTS_DIR相同。

    10-08 14:11