当前位置:   article > 正文

golang android so库编译_android go 文件编译成so库

android go 文件编译成so库

golang android so库编译


第一步:下载并安装 android 官方工具:NDK (https://developer.android.com/ndk/downloads/index.html)
第二步:编写需要编译成so的共享golang方法文件
注意事项:

  1. 所属package 为 main
  2. 必须导入import “C”
  3. 提供的方法前需加备注://export 方法名
  4. *C.char 转 golang string: C.GoString(argeName)
    第三步:编译命令:
    x86_64 :
    CGO_ENABLED=1 CC=/you/install/ndk/path/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android21-clang GOOS=android GOARCH=amd64 go build -buildmode=c-shared -o libxxx_amd64.so xxx.go
    x86:
    CGO_ENABLED=1 CC=/you/install/ndk/path/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android21-clang GOOS=android GOARCH=386 go build -buildmode=c-shared -o libxxx_amd.so xxx.go
    arm64-v8a:
    CGO_ENABLED=1 CC=/you/install/ndk/path/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android21-clang GOOS=android GOARCH=arm64 go build -buildmode=c-shared -o libxxx_arm64.so xxx.go
    armeabiv-v7a:
    CGO_ENABLED=1 CC=/you/install/ndk/path/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi21-clang GOOS=android GOARCH=arm go build -buildmode=c-shared -o libxxx_arm.so xxx.go

各so类型说明:

  1. armeabiv-v7a: 第7代及以上的 ARM 处理器。2011年15月以后的生产的大部分Android设备都使用它.
  2. arm64-v8a: 第8代、64位ARM处理器,很少设备,三星 Galaxy S6是其中之一。
  3. armeabi: 第5代、第6代的ARM处理器,早期的手机用的比较多。
  4. x86: 平板、模拟器用得比较多。
  5. x86_64: 64位的平板。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/766914
推荐阅读
相关标签
  

闽ICP备14008679号