Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.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
Android NDK-从静态库构建ARMv5/ARMv7共享库_Android_Android Ndk_Java Native Interface_Shared Libraries - Fatal编程技术网

Android NDK-从静态库构建ARMv5/ARMv7共享库

Android NDK-从静态库构建ARMv5/ARMv7共享库,android,android-ndk,java-native-interface,shared-libraries,Android,Android Ndk,Java Native Interface,Shared Libraries,我有两个从指定项目构建的静态库 ARMv5 / myLib.a ARMv7 / myLib.a 现在,我想使用这些库并为ARMv5和ARMV7平台构建两个共享库 有没有办法指定我想要使用两个版本的静态库? 现在,我在我的ANT脚本中做了一个坏把戏,它只包括: 复制静态ARMv5库 构建共享库(ARMv5) 删除ARMv5静态库并复制ARMv7版本 再次构建共享库(ARMv7) 我知道有 "APP_ABI := armeabi armeabi-v7a" 但如何告诉他我想从两个独立的静态库而不

我有两个从指定项目构建的静态库

ARMv5 / myLib.a
ARMv7 / myLib.a
现在,我想使用这些库并为ARMv5和ARMV7平台构建两个共享库

有没有办法指定我想要使用两个版本的静态库? 现在,我在我的ANT脚本中做了一个坏把戏,它只包括:

  • 复制静态ARMv5库
  • 构建共享库(ARMv5
  • 删除ARMv5静态库并复制ARMv7版本
  • 再次构建共享库(ARMv7
  • 我知道有

    "APP_ABI := armeabi armeabi-v7a" 
    
    但如何告诉他我想从两个独立的静态库而不是一个静态库构建


    在这方面,

    可能不是最好的方法,但是,您可以尝试在Android.mk中使用if-else语句,检查APP_-ABI值并使用相应的库

    ifeq ($(APP_ABI), armeabi-v7a)
      LOCAL_SRC_FILES := ARMv7/myLib.a
    else
      LOCAL_SRC_FILES := ARMv5/myLib.a
    endif
    
    或者使用本地静态库,以防直接链接它们。当然,Application.mk应该包括您声明的行:

    APP_ABI := armeabi armeabi-v7a
    

    可能不是最好的方法,但是,您可以尝试在Android.mk中使用if else语句,检查APP_ABI值并使用相应的库

    ifeq ($(APP_ABI), armeabi-v7a)
      LOCAL_SRC_FILES := ARMv7/myLib.a
    else
      LOCAL_SRC_FILES := ARMv5/myLib.a
    endif
    
    或者使用本地静态库,以防直接链接它们。当然,Application.mk应该包括您声明的行:

    APP_ABI := armeabi armeabi-v7a
    

    事实上,我不再有一个静态库,而是在一个用于ARMv5/v7的共享库中构建所有源代码。然而,在构建过程中,我得到了很多“多重定义…”。有什么想法吗?如果不查看您的实现的当前结构,很难判断,但您确实在多个位置包含或定义了一个成员。我测试了我的解决方案,如果您坚持使用静态库,它将解决您的问题。无论如何,我想你目前的问题是另一个问题。是的,我发布了另一个问题,因为它与这个问题完全不同()。顺便谢谢你的帮助!事实上,我不再有一个静态库,而是在一个用于ARMv5/v7的共享库中构建所有源代码。然而,在构建过程中,我得到了很多“多重定义…”。有什么想法吗?如果不查看您的实现的当前结构,很难判断,但您确实在多个位置包含或定义了一个成员。我测试了我的解决方案,如果您坚持使用静态库,它将解决您的问题。无论如何,我想你目前的问题是另一个问题。是的,我发布了另一个问题,因为它与这个问题完全不同()。顺便谢谢你的帮助!