Skip to content

Instantly share code, notes, and snippets.

@obito02
Last active December 21, 2019 19:54
Show Gist options
  • Save obito02/517693fc76605356bde4a0ef8485387a to your computer and use it in GitHub Desktop.
Save obito02/517693fc76605356bde4a0ef8485387a to your computer and use it in GitHub Desktop.
Crear binario estatico para android con Go usando CGO habilitado. (Acceder a funcion de C desde Go)
Resulta que deseo crear un binario estatico para android no un bibliotecta compartida, pero gomobile no me permite o hasta donde he
investigado no me permite crear binarios estaticos. Esto esta construido usando Windows
Requisitos
NDK r19 o superior
Tendremos que crear un standalone tool chain
puedes guiarte con este tutorial https://developer.android.com/ndk/guides/standalone_toolchain
Una vez creado, a compilar. yo uso un bat para asignar las variables necesarias.
////////////INICIO BAT/////////////////////
set GOOS=android
set GOARCH=arm
set CGO_ENABLED=1
:: C:\dev\bin es la carpeta donde se crea el estandolone (en mi caso, en el suyo debe poner en donde lo creo.), tienes que configurar la variable de entorno PATH con el valor de la carpeta BIN
set PATH=%PATH%;C:\dev\bin
:: Configura los compiladores de C y C++
set CC=arm-linux-androideabi-clang
set CXX=arm-linux-androideabi-clang++
:: Construye tu binario estatico haciendo uso de las funciones de tu codigo C
go build paquete
//////////////////FIN BAT/////////////////////
Con esto te creara el binario. OJO solo te contruira un binario para ARM de 32 bits, si necesitas para arm64 o intel deberas crear o configurar el toolchain para dicha arquitectura.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment