Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ iOS中的静态框架与链接_C++_Ios_Xcode_Frameworks_Static Linking - Fatal编程技术网

C++ iOS中的静态框架与链接

C++ iOS中的静态框架与链接,c++,ios,xcode,frameworks,static-linking,C++,Ios,Xcode,Frameworks,Static Linking,我有一个xcode工作区,其中包含一些依赖于Boost 1_49(构建为iOS框架)、静态框架(来自的伪框架)的项目库,然后是一个使用静态框架的测试应用程序 测试应用程序还使用boost 我想做一些测试,看看是否有可能让测试应用程序在不同版本的boost上工作,而不是在框架上工作。通过这种方式,我们可以将框架作为独立框架交付,而不必对使用我们框架的应用程序中需要使用的boost版本进行任何限制 因此,我将测试应用程序设置为使用Boost1_48,将框架设置为使用1_49。我将它设置为所有使用bo

我有一个xcode工作区,其中包含一些依赖于Boost 1_49(构建为iOS框架)、静态框架(来自的伪框架)的项目库,然后是一个使用静态框架的测试应用程序

测试应用程序还使用boost

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

因此,我将测试应用程序设置为使用Boost1_48,将框架设置为使用1_49。我将它设置为所有使用boost的项目都而不是集,将boost框架链接到二进制文件中,而我的框架项目实际上根本没有boost引用;它只引用由其依赖项生成的所有.a libs

项目A
-Boost.149框架

项目B

MyFramework
-项目a.a
-项目B.a

TestApp
-MyFramework.framework -Boost.1_48

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

链接是怎么回事?我如何让应用程序只使用TestApp中包含的boost版本

谢谢,

Liron

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