Iphone 来自地狱的静态库路径噩梦
这就是重点。我创建了一个子项目(静态库)。这个图书馆编译得很好。没有错误。当我将此库包含在项目中并从项目上的该库导入头时,该库无法编译,因为它找不到属于自身的路径 在网上学习了一系列关于如何创建静态库并将其嵌入到项目中的教程之后,我不知道哪一个是正确的,因为我已经尝试了所有的方法,但都失败了,有些方法不同 以下是设置库的方式:Iphone 来自地狱的静态库路径噩梦,iphone,ios,cocoa-touch,cocoa,Iphone,Ios,Cocoa Touch,Cocoa,这就是重点。我创建了一个子项目(静态库)。这个图书馆编译得很好。没有错误。当我将此库包含在项目中并从项目上的该库导入头时,该库无法编译,因为它找不到属于自身的路径 在网上学习了一系列关于如何创建静态库并将其嵌入到项目中的教程之后,我不知道哪一个是正确的,因为我已经尝试了所有的方法,但都失败了,有些方法不同 以下是设置库的方式: 静态库 生成设置: 公用标题文件夹路径=$(内置产品目录) 标题搜索路径=$(SRCROOT)(递归) 构建阶段 COPY FILES=1个文件,myLibrary.h
静态库 生成设置:
$(内置产品目录)
$(SRCROOT)
(递归)主要项目 生成设置
$(内置产品目录)
(递归)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"
我花了两天时间来解决这个噩梦
有什么想法吗
我已将一个示例项目上载到和(没有足够的代表发表评论…)
您是否尝试在标题搜索路径中特别包括平台目录?可能平台位于源目录中,而不是$(Build_PRODUCTS_DIR)中,因此在当前设置中可能无法搜索。关于显示env变量的脚本,以下是我的操作方法(在新选项卡中打开图像以更好地缩放):
- 添加了虚拟shell脚本
- 在Log Navigator上观察其输出
如您所见,
build\u PRODUCTS\u DIR
没有从库中复制任何头。请手动将头放在那里(强烈不推荐),或将搜索路径添加到您知道头必须位于的位置:
现在,由于有两个标题cocos2d.h
和MyStaticLibrary.h
,cocos2d.h
已成功导入,尽管它将具有其他依赖项
路径
。/MyStaticLibrary/build/$(build\u STYLE)-$(PLATFORM\u NAME)
也将(递归地)具有库的公共头。经过近5天的噩梦,我终于找到了本教程:
这是唯一对我有效的解决方案。最简单也是最好的
感谢所有试图解决这个问题的人。在下载了您的示例项目后,我做了以下更改,使它在几分钟内正常工作 首先,您需要在标题搜索路径下为目标的构建设置添加一个条目,以便导入“cocos2d.h”的文件(如
HelloWorldLayer.h
)知道在哪里可以找到该文件
在标题搜索路径下
,我输入了。/MyStaticLibrary/MyStaticLibrary/libs/**
,如下图所示:
这解决了预处理器无法从MyProject
项目的MyStaticLibrary
中找到所需源文件的问题,但在编译后,我遇到了一个关于缺少符号的错误。我需要将构建的libMyStaticLibrary.a
添加到链接二进制与库的步骤中如下图所示:
在那之后,项目就可以编译了。请试试这个
步骤1:右键单击“projectName.xcodeproj”(静态库)。选择“获取信息”并从(常规->何处)复制完整路径
步骤2:将完整路径粘贴到主项目(目标和项目)的“标题搜索路径”添加运行脚本
在失败阶段之前要执行的构建阶段,检查在构建日志中显示环境变量
,启动构建并在日志导航器
处检查路径。脚本为空?仅此而已?这样做只会显示日志导航器上已经显示的内容。我上传了一个示例项目到这里:所以你可以明白我的意思。上面说Safari已经过时了(原文如此)然后要求接受某种使用条款,你能把项目上传到更友好的主机上吗?我今天晚些时候会检查它。没问题。我们开始吧。请试试或者你试过我上传的示例项目了吗?见我问题的最后一段。谢谢。@Ruberduck我相信他的想法和我的一样:添加c正确的标题搜索路径。你也可以使用构建位置
设置将libs和主项目的构建文件放在同一根产品目录下。顺便说一句,我已经尝试了你的答案,但不幸的是它对我不起作用。我即将放弃在Xcode上构建静态库。对于苹果来说,Xcode是t是另一个耻辱太糟糕了。谢谢你的努力。我已经找到了这个问题的解决方案。谢谢你的努力。你几乎做到了,但还有其他一些问题。请看我的答案。谢谢。谢谢。我稍后会试试。顺便说一句,苹果一定是在和开发者开玩笑。@RubberDuck为什么,你遵循了developer.apple.com的任何指南,但它不起作用?我会的我猜这是因为缺少cocos2d或其他什么的文档