<chapter id="adv-build-management">
<title
>Gestión de compilación avanzada</title>
<indexterm zone="adv-build-management"
><primary
>&automake;</primary
></indexterm>

<sect1 id="buildconfigurations">
<title
>Configuraciones de construcción múltiple</title>
<indexterm zone="buildconfigurations"
><primary
>configuraciones de construcción</primary
><secondary
>múltiple</secondary
></indexterm>

<para
>(... pendiente de escribir ...) </para>

</sect1
> <!-- buildconfigurations -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<sect1 id="crosscompiling">
<title
>Compilación multiplataforma</title>
<indexterm zone="crosscompiling"
><primary
>compilación multiplataforma</primary
></indexterm>
<indexterm zone="crosscompiling"
><primary
>compilación</primary
><secondary
>multiplataforma</secondary
></indexterm>
<indexterm zone="crosscompiling"
><primary
><option
>--host</option
></primary
></indexterm>

<para
>Cuando dispone de compiladores multiplataforma adecuados, puede compilar sus programas para procesadores y sistemas operativos diferentes a los del sistema donde de ejecutan &kdevelop; y el compilador. La colección de compiladores &gcc; de &GNU; se puede configurar y compilar como compilador multiplataforma, siempre que la compile usted mismo . Consulte las <ulink url="info://gcc/Cross-Compiler"
>páginas info de GCC</ulink
> para más información. Algunas distribuciones &Linux; también proporcionan paquetes binarios. </para>

<para
>Un paquete basado en <application
>automake</application
> se puede compilar fácilmente para múltiples plataformas especificando la opción <option
>--host</option
> en el guión «configure» y estableciendo las variables de entorno <envar
>CC</envar
> y <envar
>CXX</envar
> para que apunten a los respectivos binarios de compilación multiplataforma. A menudo deseará alternar entre una versión multiplataforma de su aplicación y otra compilada para su sistema de desarrollo. Para ello, resulta ventajoso usar la capacidad que tiene &kdevelop; para crear múltiples configuraciones de construcción, como se explica en <xref linkend="buildconfigurations"/>. Una vez que haya creado una nueva configuración de construcción para compilación multiplataforma en el diálogo <menuchoice
><guimenu
>Proyecto</guimenu
><guimenuitem
>Opciones del proyecto...</guimenuitem
></menuchoice
>, añada la opción </para>

<screen
><option
>--host=</option
><replaceable
>plataforma</replaceable
></screen>

<para
>a las opciones de configuración. El nombre <replaceable
>plataforma</replaceable
> puede constar de los elementos </para>

<programlisting
>cpu-fabricante-sistema_operativo</programlisting>
<para
>o</para>
<programlisting
>cpu-fabricante-kernel-sistema_operativo</programlisting>

<para
>Para muchas combinaciones puede usar una forma corta, como por ejemplo <wordasword
>i386-linux</wordasword
> o <wordasword
>arm-elf</wordasword
>. </para>

</sect1
> <!-- crosscompiling -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<sect1 id="qtembedded">
<title
>Qt/Embedded</title>
<indexterm zone="qtembedded"
><primary
>empotrado</primary
><secondary
>Qt</secondary
></indexterm>
<indexterm zone="qtembedded"
><primary
>Qt/Embedded</primary
></indexterm>
<indexterm zone="qtembedded"
><primary
>Qtopia</primary
></indexterm>
<indexterm zone="qtembedded"
><primary
>framebuffer</primary
></indexterm>

<para
>&qte; es una versión de la biblioteca &Qt; que no usa el sistema X-Window, sino que dibuja directamente en el framebuffer de los sistemas &Linux;. Por lo tanto es interesante para sistemas empotrados que poseen rígidas limitaciones en lo que se refiere a uso de la memoria total del sistema. Su &API; es completamente compatible con la de la versión X11. </para>

<para
>Desarrollar una aplicación para &qte; con &kdevelop; no es muy diferente a desarrollar un programa para la versión X11 de &Qt;. De hecho, puede usar la misma base de código para ambas versiones. Si usa la gestión de proyectos automática, puede cambiar a la versión empotrada pasando el argumento <option
>--enable-embedded</option
> al guión «configure». Puede configurar esto en el diálogo <menuchoice
><guimenu
>Proyecto</guimenu
> <guimenuitem
>Opciones del proyecto...</guimenuitem
></menuchoice
>, en el apartado <guilabel
>Opciones de configure</guilabel
>. Puede especificar el directorio donde está instalado &qte; con la opción <option
>--with-qt-dir=DIR</option
>. </para>

<para
>Tras configurar y compilar su aplicación con estas opciones, será enlazada con la biblioteca <filename
>libqpe.so</filename
>. Esta versión de su aplicación no funcionará correctamente si usa X11. Para probarla, ejecútela bajo control del programa <application
>qvfb</application
> (&Qt; Virtual Frame Buffer). Para ello, inicie <application
>qvfb</application
> y ejecute luego su aplicación con </para>

<screen
><command
>app <option
>-qws</option
> <option
>-display QVFb:0</option
></command
></screen>

<para
>Naturalmente, cuando tiene una versión funcional de su aplicación, deseará probarla con el procesador de destino. Para ello, probablemente será conveniente crear múltiples configuraciones de construcción, como se ha explicado anteriormente, de modo que pueda cambiar rápidamente entre la versión que se ejecuta en su sistema de desarrollo y la versión que se ejecuta en el sistema de destino. </para>

<para
>Las aplicaciones para &qte; funcionan normalmente como aplicaciones únicas en el dispositivo para el que están diseñadas. Trolltech también soporta Qtopia, que es una colección de aplicaciones para PIM, navegación web y otras tareas que funcionan conjuntamente de una manera consistente. Este es, por ejemplo, el entorno estándar de Sharp Zaurus. Puede escribir aplicaciones que se integren en este entorno usando el SDK de Qtopia. Esto implica que la clase de su aplicación debe ser una subclase de <classname
>QPEApplication</classname
>, y que debe enlazarla con la biblioteca <filename
>libqpe.so</filename
>. Si desarrolla su aplicación usando la gestión de proyectos automática, deberá añadir <option
>--enable-qtopia</option
> a las opciones de «configure». </para>

</sect1
> <!-- qtembedded -->

</chapter
> <!-- adv-build-management -->
