【问题标题】:Static Framework in iOS and linkingiOS中的静态框架和链接
【发布时间】:2012-05-25 07:04:42
【问题描述】:

我有一个 xcode 工作区,其中设置了一些依赖于 Boost 1_49(构建为 iOS 框架)的项目库、一个静态框架(来自https://github.com/kstenerud/iOS-Universal-Framework 的假框架),然后是一个使用静态框架。

测试应用还使用了 boost。

我想做一些测试,看看是否可以让测试应用在与框架不同的 boost 版本上运行。通过这种方式,我们可以将框架作为一个独立的框架交付,而无需对需要在使用我们框架的应用程序中使用的 boost 版本进行任何限制。

因此,我将测试应用设置为使用 boost 1_48,并将框架设置为使用 1_49。我进行了设置,以便所有使用 boost 的项目都 not 将 boost 框架链接到二进制文件中,而我拥有的框架项目实际上根本没有在其中引用 boost;它仅引用其依赖项生成的所有 .a 库。

项目A
- Boost.framework 1_49

项目B

我的框架
- 项目A.a
- 项目B.a

TestApp
- MyFramework.framework - Boost.framework 1_48

然后我在框架和测试应用程序中添加了一些代码来打印出 boost 版本。两个地方都打印出版本 1_49,而不是 1_48。另外,我尝试在测试应用程序中添加一些代码以进入boost(例如,只获取当前时间),xCode调试器将我带入ProjectA中包含的boost版本,而不是进入ProjectA中包含的boost版本测试应用程序。

链接发生了什么?如何让应用程序仅使用 TestApp 中包含的 boost 版本?

谢谢,
利隆

【问题讨论】:

    标签: c++ ios xcode frameworks static-linking


    【解决方案1】:

    似乎问题在于应用程序中的其他一些库也在 Boost 1.49 中链接,所以即使我认为我使用的是 1.48,1.49 也在那里。哦,好吧。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-30
      • 1970-01-01
      • 2014-11-16
      • 1970-01-01
      • 2011-07-30
      • 2012-03-12
      • 1970-01-01
      相关资源
      最近更新 更多