这就是重点。我创建了一个子项目(静态库)。该库编译良好。没有错误。当我将此库包含在项目中并从项目中的该库导入标头时,该库无法编译,因为它找不到属于自身的路径。
在网上学习了一系列有关如何创建静态库并将其嵌入到项目中的教程后,我不知道哪个是正确的,因为我已经尝试了所有方法,但所有方法都失败了,而且有些方法有所不同。
这是库的设置方式:
静态库
构建设置:
- 公共头文件夹路径 =
$(BUILT_PRODUCTS_DIR)
- 标头搜索路径 =
$(SRCROOT)
(递归)
构建阶段
COPY FILES = 1 文件,myLibrary.h 基本上是空的(当我使用静态库模板启动库时由 xcode 创建。
no 添加复制标题 phase
主要项目
构建设置
- 标头搜索路径 = 空
- 用户标头搜索路径 =
$(BUILT_PRODUCTS_DIR)
(递归)
- 始终搜索用户路径=
YES
构建阶段
- Yes,
myLibrary.a
is on target dependencies
令我惊讶的是,该库单独编译得很好,但是当放入项目中时,无法找到属于自己的库的标头。
注意:我还尝试在库上创建一个复制标头阶段,公开所有内容.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"
我花了两天时间试图解决这个噩梦。
有什么想法吗?
我已将示例项目上传到here http://dfiles.eu/files/vj7egy9ig and here http://www.sendspace.com/file/dfvs09
下载示例项目后,我通过进行以下更改使其在几分钟内运行。
首先,您需要添加一个条目MyProject
标题搜索路径下的目标的构建设置,以便诸如HelloWorldLayer.h
, which #import "cocos2d.h"
,知道在哪里可以找到该文件。
在下面Header Search Paths
, 我进入了../MyStaticLibrary/MyStaticLibrary/libs/**
如下图所示:
这解决了预处理器无法从文件中找到必要的源文件的问题MyStaticLibrary
, 为了MyProject
项目,但编译后出现缺少符号的错误。我需要添加构建的libMyStaticLibrary.a
to the Link Binary With Libraries
步骤如下图所示:
之后,该项目编译良好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)