0

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

测试应用程序还使用了 boost。

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

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

项目
A - Boost.framework 1_49

项目B

MyFramework
- ProjectA.a
- ProjectB.a

TestApp
- MyFramework.framework - Boost.framework 1_48

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

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

谢谢,里

4

1 回答 1

0

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

于 2012-07-18T17:49:39.453 回答