Android ndk app_stl值与静态和共享构建android之间的关系
我一直在想,现在又困惑了 如果在Application.mk文件中设置了app_stl=stlport_static或stlport_shared,并且您正在尝试构建库的共享和静态版本。其效果是什么,为什么在android ndk应用程序中会有一个特定的案例(见下文) 假设我有Android ndk app_stl值与静态和共享构建android之间的关系,android-ndk,android-stlport,Android Ndk,Android Stlport,我一直在想,现在又困惑了 如果在Application.mk文件中设置了app_stl=stlport_static或stlport_shared,并且您正在尝试构建库的共享和静态版本。其效果是什么,为什么在android ndk应用程序中会有一个特定的案例(见下文) 假设我有 Case1: APP_STL=stlport_static and include $(BUILD_SHARED_LIBRARY) Case2: APP_STL=stlport_static and include $
Case1: APP_STL=stlport_static and include $(BUILD_SHARED_LIBRARY)
Case2: APP_STL=stlport_static and include $(BUILD_STATIC_LIBRARY)
Case3: APP_STL=stlport_shared and include $(BUILD_SHARED_LIBRARY)
Case4: APP_STL=stlport_shared and include $(BUILD_STATIC_LIBRARY)
我确实理解stlport和gnustl之间的区别,所以我擅长这一部分
案例1:APP\u STL=stlport\u static和include$(构建共享库)案例2:APP\u STL=stlport\u static和include$(BUILD\u static\u库) 如果您有两个或多个依赖于STLport的库,这两种配置(STLport的静态链接)可能会给您带来麻烦。因为有两个或多个库携带STLport的符号,所以您可能会违反 我相信这就是为什么
doc/CPLUSPLUS-SUPPORT.html
有:
二,。重要注意事项二、 三,。静态运行时
请记住给定C++的静态库变量 运行时应仅链接到单个二进制文件,以实现最佳 条件
这意味着,如果您的项目由单个共享 库,您可以链接到,例如stlport_static和所有内容 将正常工作 另一方面,如果项目中有两个共享库 (例如libfoo.so和libbar.so)都链接到同一个静态 运行时,它们中的每一个都将包含运行时代码的副本 它的最终二值图像。这是有问题的,因为某些全球性的 运行时内部使用/提供的变量是重复的