De vez en cuando tenemos la necesidad de compilar programas para otras plataformas pero no queremos meter en nuestro sistema todo el «toolchain» para poder compilar en esa plataforma. Para evitar esto, podemos hacer uso de dockcross.
Dockcross usa docker para meter en un contenedor imágenes ya preparadas para poder compilar (normalmente lenguaje c/c++) programas para otros procesadores diferentes al nuestro.
En el articulo anterior https://elbinario.net/2016/10/07/docker-instalacion-en-debian-jessie/ ya vimos como instalar docker así que ahora vamos un paso más adelante.
Instalación
Dockcross usa un script de ayuda que se genera desde la propia imagen de la siguiente forma:
$ docker run --rm CROSS_COMPILER_IMAGE_NAME > ./dockcross
$ chmod +x ./dockcross
$ mv ./dockcross ~/bin/
Por ejemplo para compilar un «hello world» para arquitecturas armv7 como la raspberry pi2:
$ cd ~/src/dockcross
$ docker run --rm dockcross/linux-armv7 > ./dockcross-linux-armv7
$ chmod +x ./dockcross-linux-armv7
$ ./dockcross-linux-armv7 bash -c '$CC test/C/hello.c -o hello_arm'
Tenemos imagenes para hacer crosscompiling a android, arm (v5, v6, v7), powerpc, windows, etc.
Comandos
Para actualizar las imágenes que tengamos descargadas:
$ dockcross update-image
Para actualizar los scripts generados:
$ dockcross update-script
Para actualizar imágenes y scripts
$ dockcross update
Refencias:
Genial, segunda parte, gracias por compartir ;)