我有一个 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 版本?
谢谢,里
龙