en un articulo anterior Hugo Ruscitti hablo sobre la compilacion cruzada, esto en resumen, hablaba sobre compilar un codigo fuente C a un ejecutable de Windows. el problema… bueno, no existe un problema en si mismo. La manera de hacer un ejecutable desde la shell de nuestro sistema GNU/Linux es bastante sencilla. ¿Pero y si trabajamos dentro de un editor como Code::Blocks?, seria muy desagradable tener que abrir una shell y movernos hasta donde se encuantra nuestro codigo fuente para luego compilar nuestro codigo fuente y terminar con un bonito ejecutable. si encuentras que esto es mucho trabajo para ti y necesitas una manera de compilar ejecutables sin salir de Code::Blocks, ¡pues sigue leyendo este articulo!.
Bien, tomando en cuenta el articulo de compilación cruzada, haremos lo siguiente. Primero ejecutaremos Code::Blocks, lo siguiente que haremos sera ir al menú “Tools” y luego dar clic sobre “Configure tools…”.
Se abrirá una pequeña ventana titulada “User-defined tools” con varios botones al lado derecho de la misma. El botón que nos interesa es el “Add”, le damos clic.
Otra ventana mas se abrirá, esta se titula “Edit tool”. Contiene varios campos para rellenar con texto, “Name” sera el campo para el nombre para identificar nuestra herramienta para la compilación cruzada, “Executable” se usa para especificar el archivo binario que sera nuestra herramienta en si dentro de C::B. Otro campo importante es “Parameters”, aquí introduciremos los argumentos (ó parámetros) que requiere (si fuera el caso) nuestro archivo binario. Podemos ignorar el ultimo campo.
Bien, en el campo “Name” ponemos lo que mas nos guste y que identifique nuestra herramienta para la compilación cruzada, por ejemplo, exe-cuneitor estará bien. En el campo “Executable” le damos clic al botón con los puntos suspensivos ”[…]”, esto debería abrir una ventana de navegación de archivos. Ahora bien vamos a nuestra carpeta raíz (asegurate de tener privilegios para leer carpetas del sistema) buscamos el binario del que se hablo en el articulo de compilacion cruzada, el “i586-mingw32msvc-gcc” que esta en /usr/bin como en cualquiera de nuestros sistemas GNU/Linux (bueno, a menos en mi sistema operativo GNU/Linux Ubuntu aparece ahí. Tal vez para ti sea en otro lugar).
En el ultimo campo que nos interesa, “Parameters”, utilizaremos las macros de C::B para darle argumentos validos al compilador (o nuestra herramienta), usaremos $ {ACTIVE_EDITOR_FILENAME} que especifica el nombre del archivo fuente que queremos compilar en el momento que lo estemos editando (ojo: no compilaremos todo el proyecto que estemos desarrollando). Para resumir, el campo “Parameters” quedara así:
${ACTIVE_EDITOR_FILENAME} -o ${ACTIVE_EDITOR_FILENAME}.exe
Para finalizar, puedes dejar como esta el área “Launching options”, esto define si al ejecutar nuestra herramienta se visualizara una pequeña ventana de consola, escondida con redireccionamiento estándar de la salida, etc.
ahora que tienes tu herramienta correctamente configurada puedes confirmar los cambios para cerrar la ventana “User-defined tools”, ahora, escribe un hola mundo en C para probar la herramienta. Veras que al lado del codigo fuente aparece un binario con extencion .Exe, listo!!!, ya podemos hacer la compilacion cruzada con Code::Blocks.
si no te gusta que tu binario aparezca con la extension .C antes del .Exe podria recomendarte una manera pythonistico. es el mismo metodo y sus parametros, solo que usariamos un script de python que llame al compilador “i586-mingw32msvc-gcc” y que tambien se encargue de arreglar el nombre del archivo binario de salida. hablare de esto en otro articulo.
Bye!~ — jorge_araya_navarro 03/05/2010 a las 20:14