以下是我的情况:
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包含在其中。
任何人都可以阐明如何解决这个问题?
答案 0 :(得分:1)
将Run Script Build Phase添加到执行
的ExternLib的目标mkdir -p "${BUILT_PRODUCTS_DIR}ExternLibHeaders"
添加复制文件构建阶段,将ExternLib头文件复制到${BUILT_PRODUCTS_DIR}ExternLibHeaders
,并将所有ExternLib
的标头添加到该阶段。
在ProjectB的应用目标中,将${BUILT_PRODUCTS_DIR}/ExternLibHeaders/
添加到所有配置的标题搜索路径。
在Xcode中>偏好>构建,将构建产品目录设置为某个公共位置。
第四步至关重要;它确保BUILT_PRODUCTS_DIR
对于两个项目都是相同的。
答案 1 :(得分:0)
很难说出现了什么可能出错。
我将从头开始编写有关构建和使用静态库的教程,并查看是否有任何步骤使您想到任何想法。