【发布时间】:2013-04-06 16:04:10
【问题描述】:
这就是重点。我创建了一个子项目(静态库)。该库编译良好。没有错误。当我将此库包含在项目中并从项目中的该库导入标头时,该库无法编译,因为它找不到属于自己的路径。
在网上看了一堆关于如何创建静态库并将其嵌入到项目中的教程之后,我不知道哪个是正确的,因为我尝试过所有的都失败了,有些不同。
库是这样设置的:
静态库
建筑设置:
- 公共标头文件夹路径 =
$(BUILT_PRODUCTS_DIR) - 标头搜索路径 =
$(SRCROOT)(递归)
构建阶段
COPY FILES = 1 个文件,myLibrary.h 基本上是空的(我使用静态库模板启动库时由 xcode 创建。
没有添加副本标题阶段
主要项目
构建设置
- 标题搜索路径 = 空
- 用户头搜索路径=
$(BUILT_PRODUCTS_DIR)(递归) - 始终搜索用户路径 =
YES
构建阶段
- 是的,
myLibrary.a在目标依赖项上
让我吃惊的是,这个库单独编译很好,但是当放在一个项目中时,却找不到属于自己的库的头文件。
注意:我还尝试在库上创建一个复制标头阶段,将该库上的所有 .h 公开,但它也失败了。
这是一个错误的示例:
/Users/mike/Library/Developer/Xcode/DerivedData/MyApp-dnaimaovscreasadhmvgttwjnabc/Build/Products/Debug-iphoneos/include/myLibrary/ccTypes.h:39:9:
fatal error: 'Platforms/CCGL.h' file not found
#import "Platforms/CCGL.h"
我花了两天时间试图解决这个噩梦。
有什么想法吗?
【问题讨论】:
-
添加
Run Script在失败阶段之前执行的构建阶段,检查Show environmental variables in build log,开始构建并检查Log Navigator的路径。 -
脚本是空的?只是?这样做仅显示日志导航器上已显示的内容。
-
我已经上传了一个示例项目到这里:mega.co.nz/…,所以你可以明白我的意思。
-
它说 Safari 已经过时(原文如此),然后要求接受某种使用条款,您能否将项目上传到更友好的主机?我今天晚些时候去看看。
标签: iphone ios cocoa-touch cocoa