首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将".a“脂肪静态库与Apportable链接起来?

如何将".a“脂肪静态库与Apportable链接起来?
EN

Stack Overflow用户
提问于 2013-09-01 03:10:16
回答 1查看 675关注 0票数 1

我如何将".a“脂肪静态库与Apportable链接起来?

一开始,我收到了警告,

警告:库找不到库名。尝试将其添加到add_params文件‘configuration.json’部分中的'deps‘数组中。检查~/..apportable/SDK/System中对应于“deps”条目的目录名。

我确实把它添加到了JSON中的"deps“中,其中写着:

//依赖项列表。通常,它们对应于xcode项目中的框架。

不过,我的库不是一个框架。它只是一个.a静态库,它包含armv7、armv7s和i386部件,我使用用Xcode构建的两个库( armv7和armv7s .a和i386 .a)使用lipo组装了这些部件。它们都使用一个单一的框架,即这个Boost框架

deps下添加它可以压制这个警告消息,但是apportable链接器仍然提供未定义的引用,所以它仍然没有正确地链接这个文件。

现在我知道Apportable必须使用再抖动所有这些东西,因为Android不知道如何处理Mac可执行格式,所以它很可能得把我的库拆开,在最终链接之前把它转换成小精灵-library。我不知道如何在这一点上调试它,但这一点支持吗?

EN

回答 1

Stack Overflow用户

发布于 2013-09-01 09:27:54

因为您得到了“未找到的库”,这意味着Apportable根本找不到文件。因此,问题仅仅在于文件的位置(或存在性),而不是库中的内容或如何构建它。

依赖目标(特别是Xcode项目)中最常见的问题是,每个目标/项目的结果输出到不同的文件夹中。然后Apportable (以及在某些情况下的xcodebuild )无法找到结果库。

您应该尝试的第一步是确保设置目标依赖项。选择应用程序目标,转到构建阶段窗格,在“目标依赖项”下添加列表中显示和项目依赖的所有框架和库。这将确保依赖框架/库确实被内置--因为Xcode的内置--根据我的理解,命令行工具无法使用自动依赖解决方案。因此,您需要显式地指定依赖项目的输出。

如果这没有帮助,您可以强制所有目标将其输出写入同一个文件夹。在的生成设置下,每个目标将构建产品路径(符号名: SYMROOT)更改为相同的文件夹,例如~/myprojectsbuildoutput

这样,即使是依赖的其他项目也会将它们的输出放在同一个文件夹中,xcodebuild和able (它依赖于xcodebuild)将能够找到库文件。

提示:确保您的项目在命令行上成功构建。打开终端,cd进入.xcodeproj包所在的文件夹并输入xcodebuild。如果xcodebuild仅仅由于验证而失败,则禁用应用程序目标的Build下的验证构建产品。如果xcodebuild失败,Apportable可能也无法工作,因为它依赖于xcodebuild。因此,作为先决条件,请确保xcodebuild在您的项目上工作。

如果xcodebuild还为您提供了“未找到的库”,请尝试使用特定的SYMROOT调用它:

代码语言:javascript
复制
xcodebuild SYMROOT=~/myprojectsbuildoutput

如果这样做有效,您知道必须更新每个目标的Build Projects Path。据我所知,目前不可能(或没有文档化)通过Apportable传递自定义xcodebuild参数,因此需要在.xcodeproj本身中设置它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18554844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档