DockCross: Crosscompiling con Docker

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:

https://github.com/dockcross/dockcross

Compartir

1 Comentario

Deja una respuesta

Your email address will not be published. Required fields are marked *