Pular para conteúdo

Compilar Software

Visão geral

Nos clusters você precisará frequentemente compilar programas a partir do código-fonte. Este guia mostra como usar o GNU Build System (Autotools), o make e o cmake para configurar, compilar e instalar softwares no seu espaço de usuário, sem necessidade de privilégios elevados.

Autotools (GNU Build System)

O clássico GNU Build System se fundamenta em dois componentes principais:

  • um script configure que adapta a compilação à máquina em uso
  • um ou mais Makefiles que descrevem como compilar e instalar o software usando make.

Na prática, compilar a maioria dos pacotes baseados em Autotools no cluster resumo-se à sequência padronizada de três passos:

./configure --prefix=$HOME/software/<nome_programa>
make
make install

Este é exatamente o padrão descrito na documentação do GNU Build System: o configure examina o sistema e gera Makefiles com o compilador, flags e caminhos adequados; cada execução do make então verifica o que precisa ser recompilado antes de executar as regras correspondentes.

Algumas dicas ao usar Autotools no cluster:

  • Compilações fora da árvore (out-of-tree): Sempre que possível, compile em um diretório separado para manter a árvore de código-fonte limpa.
  • Prefixo por usuário: Mantenha o --prefix dentro do seu diretório home (por exemplo $HOME/software/minhaferramenta) para não precisar de privilégios de administrador.
  • Reconfiguração: Ao trocar de compilador ou modificar variáveis de ambiente importantes, execute ./configure novamente para que os Makefiles gerados reflitam o novo ambiente.

Make

O make é a ferramenta central que executa as regras de compilação descritas em um Makefile. Nos clusters você o encontrará tanto como parte do GNU Build System (./configure && make && make install) quanto em projetos mais simples que distribuem apenas um Makefile escrito manualmente.

  1. Compilando um projeto com Make: Com um Makefile adequado no diretório do projeto, inicie a compilação com:

    make
    
  2. Personalizando a compilação: Você pode passar variáveis na linha de comando para escolher compiladores ou flags de otimização, por exemplo:

    make CC=gcc CFLAGS="-O2"
    
  3. Instalação (quando disponível): Alguns Makefiles também fornecem um alvo install semelhante ao do Autotools. Nesses casos, você pode usar:

    make install
    

Sempre consulte a documentação do projeto ou execute make help para verificar quais alvos estão disponíveis.

CMake

  1. Carregando o CMake: Para usar o CMake no cluster, primeiro carregue o módulo correspondente:

    module load cmake
    
  2. Configurando e compilando um projeto com CMake:

    • Crie um diretório para a compilação:
    mkdir build
    cd build
    
    • Execute o CMake para configurar o projeto, especificando o diretório do código-fonte:
    cmake ../diretorio_fonte
    
    • Após a configuração, compile o projeto com:
    make
    

Problemas e suporte

Se você encontrar problemas ao compilar software com Make ou CMake, consulte nossa página de suporte para obter ajuda.