为了账号安全,请及时绑定邮箱和手机立即绑定

交叉编译到原生机器人

交叉编译到原生机器人

Go
蝴蝶刀刀 2022-08-24 10:40:52
如何从MacOS交叉编译到Android原生二进制文件。我读了这个,我必须做:export NDK_ROOT=~/dev/ndk-toolchain./android-ndk-r10c/build/tools/make-standalone-toolchain.sh --platform=android-16 --install-dir=$NDK_ROOTexport NDK_CC=~/dev/ndk-toolchain/bin/arm-linux-androideabi-gccCC_FOR_TARGET=$NDK_CC GOOS=android GOARCH=arm GOARM=7 ./make.bashexport NDK_TOOLCHAIN=~/dev/ndk-toolchainexport CC=$NDK_TOOLCHAIN/bin/arm-linux-androideabi-gccexport GOROOT=~/dev/goexport GOPATH=`pwd`export GOOS=androidexport GOARCH=armexport GOARM=7export CGO_ENABLED=1GO="$GOROOT/bin/go"$GO build -x main.go我从 Android Studio 安装了 NDK,但找不到提到的路径/dev/ndk-toolchain/bin/arm-linux-androideabi-gcc在我的设备中,我有:$ cd /Users/hajsf/Library/Android/sdk/ndk/22.1.7171670/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64$ lsarm-linux-androideabi   bin         lib         share$ cd bin$ lsarm-linux-androideabi-addr2line arm-linux-androideabi-elfedit   arm-linux-androideabi-nm    arm-linux-androideabi-sizearm-linux-androideabi-ar    arm-linux-androideabi-gprof arm-linux-androideabi-objcopy   arm-linux-androideabi-stringsarm-linux-androideabi-as    arm-linux-androideabi-ld    arm-linux-androideabi-objdump   arm-linux-androideabi-striparm-linux-androideabi-c++filt   arm-linux-androideabi-ld.bfd    arm-linux-androideabi-ranlibarm-linux-androideabi-dwp   arm-linux-androideabi-ld.gold   arm-linux-androideabi-readelf$ 
查看完整描述

2 回答

?
慕斯709654

TA贡献1840条经验 获得超5个赞

不确定这是正确的还是否定的,我尝试了以下方法,它以我想要的方式与我一起工作。在我的 Mac 中:

$ GOOS=android GOARCH=arm64 GO build -x main.go

然后我把文件保存在GDrive,然后从我的手机下载它,然后与共享它,并把它保存在我去那里的文件夹中,并让它可执行为:Tramux~/Downloads

$ chmod +x server

然后将其运行为:

$ ./server

并让它与我一起工作!


查看完整回答
反对 回复 2022-08-24
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

我下载了NDK,解压缩了它,并找到了正确的路径:


/Users/hajsf/Downloads/android-ndk-r21e/toolchains/llvm/prebuilt/darwin-x86_64/bin

并能够编译为:


$ export NDK=~/Downloads/android-ndk-r21e

$ CGO_ENABLED=1 \

GOOS=android \

GOARCH=arm64 \

CC_FOR_TARGET=$NDK/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android21-clang


$ GO build -x main.go

//img1.sycdn.imooc.com//63058fd600017aaf14300802.jpg

在这个,有这行,但它给了我一个错误,并且机智地,我能够正确编译

./all.bash


查看完整回答
反对 回复 2022-08-24
  • 2 回答
  • 0 关注
  • 106 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信