<chapter id="adv-build-management">
<title
>Gestão de Compilações Avançada</title>
<indexterm zone="adv-build-management"
><primary
>&automake;</primary
></indexterm>

<sect1 id="buildconfigurations">
<title
>Configurações de Compilação Múltiplas</title>
<indexterm zone="buildconfigurations"
><primary
>configurações da criação</primary
><secondary
>múltiplas</secondary
></indexterm>

<para
>(... ainda não escrito ...) </para>

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

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

<sect1 id="crosscompiling">
<title
>Compilação Cruzada</title>
<indexterm zone="crosscompiling"
><primary
>compilação cruzada</primary
></indexterm>
<indexterm zone="crosscompiling"
><primary
>compilação</primary
><secondary
>cruzada</secondary
></indexterm>
<indexterm zone="crosscompiling"
><primary
><option
>--host</option
></primary
></indexterm>

<para
>Quando tiver compiladores cruzados disponíveis, poderá compilar os seus programas para processadores e sistemas operativos diferentes do sistema operativo onde o &kdevelop; e o compilador estão a correr. A colecção de compiladores da &GNU;, o &gcc;, pode ser configurado e compilado como compilador cruzado se o compilar você mesmo. Consulte as <ulink url="info://gcc/Cross-Compiler"
>páginas do 'info' do GCC</ulink
> para saber mais informações. Algumas das distribuições do &Linux; também oferecem pacotes binários. </para>

<para
>Um pacote baseado no <application
>automake</application
> pode ser compilado de forma cruzada se indicar a opção <option
>--host</option
> no programa 'configure' e definir as variáveis de ambiente <envar
>CC</envar
> e <envar
>CXX</envar
> para os executáveis dos compiladores cruzados. Muitas vezes poderá querer mudar entre uma versão compilada de forma cruzada e outra compilada para o seu sistema de desenvolvimento. Para tal, é vantajoso usar a capacidade de o &kdevelop; criar várias configurações de compilação, como é explicado em <xref linkend="buildconfigurations"/>. Logo que tenha criado uma nova configuração de compilação criada na janela <menuchoice
><guimenu
>Projecto</guimenu
><guimenuitem
>Opções do Projecto...</guimenuitem
></menuchoice
>, adicione a opção </para>

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

<para
>às opções do 'configure'. O nome da <replaceable
>plataforma</replaceable
> é um tuplo no formato </para>

<programlisting
>cpu-fabricante-so</programlisting>
<para
>ou</para>
<programlisting
>cpu-fabricante-kernel-so</programlisting>

<para
>Para as várias combinações, poderá usar uma versão reduzida, como por exemplo <wordasword
>i386-linux</wordasword
> ou <wordasword
>arm-elf</wordasword
>. </para>

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

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

<sect1 id="qtembedded">
<title
>Qt/Embedded</title>
<indexterm zone="qtembedded"
><primary
>embebido</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
>O &qte; é uma versão da biblioteca &Qt; que não usa o sistema de janelas do X, mas acede directamente ao 'framebuffer' nos sistemas &Linux;. É por isso interessante para os sistemas embebidos com grandes restrições na utilização de memória do sistema completo. A sua &API; é completamente compatível com a versão para X11. </para>

<para
>O desenvolvimento de uma aplicação para o &qte; com o &kdevelop; não é muito diferente de desenvolver um programa para a versão em X11 do &Qt;. De facto, pode usar a mesma base de código para ambas as versões. Se usar a gestão de projectos 'autoproject', poderá passar para a versão embebida, usando o argumento <option
>--enable-embedded</option
> no programa 'configure'. Poderá definir isto na janela de <menuchoice
><guimenu
>Projecto</guimenu
> <guimenuitem
>Opções do Projecto...</guimenuitem
></menuchoice
> em <guilabel
>Opções do Configure</guilabel
>. Com a opção <option
>--with-qt-dir=DIR</option
>, poderá definir a pasta em que o &qte; está instalado. </para>

<para
>Após configurar e compilar a sua aplicação com estas opções, ela irá associar-se à biblioteca <filename
>libqpe.so</filename
>. Esta versão da sua aplicação não irá executar normalmente quando usar o X11. Para poder testá-la, execute-a sob o controlo do programa <application
>qvfb</application
> (&Qt; Virtual Frame Buffer). Isto é feito ao iniciar o <application
>qvfb</application
> e depois, ao iniciar a sua aplicação, com </para>

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

<para
>Naturalmente, quando tiver uma versão funcional da sua aplicação, irá querer usá-la no processador-alvo. Para tal, será provavelmente conveniente criar várias configurações de compilação, como foi explicado acima, para que possa mudar rapidamente entre a versão em execução no seu sistema de desenvolvimento e a versão a correr no sistema-alvo. </para>

<para
>As aplicações para o &qte; irão executar normalmente como aplicações autónomas no dispositivo para o qual estão desenhadas. A Trolltech também suporta o Qtopia, que é uma colecção de aplicações para PIM, navegação Web e outras áreas diversas, funcionando em conjunto de forma consistente. É o ambiente-padrão, por exemplo, do Sharp Zaurus. Poderá criar aplicações que se integrem neste ambiente, usando o SDK do Qtopia. Isto implica fazer com que a classe da sua aplicação seja uma sub-classe de <classname
>QPEApplication</classname
> e compilar com a biblioteca <filename
>libqpe.so</filename
>. Se desenvolver a sua aplicação com a gestão de projectos 'autoproject', terá de adicionar <option
>--enable-qtopia</option
> às opções do 'configure'. </para>

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

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