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
configureque adapta a compilação à máquina em uso - um ou mais
Makefiles que descrevem como compilar e instalar o software usandomake.
Na prática, compilar a maioria dos pacotes baseados em Autotools no cluster resumo-se à sequência padronizada de três passos:
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
--prefixdentro 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
./configurenovamente para que osMakefiles 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.
-
Compilando um projeto com Make: Com um
Makefileadequado no diretório do projeto, inicie a compilação com: -
Personalizando a compilação: Você pode passar variáveis na linha de comando para escolher compiladores ou flags de otimização, por exemplo:
-
Instalação (quando disponível): Alguns
Makefiles também fornecem um alvoinstallsemelhante ao do Autotools. Nesses casos, você pode usar:
Sempre consulte a documentação do projeto ou execute make help para verificar quais alvos estão disponíveis.
CMake¶
-
Carregando o CMake: Para usar o CMake no cluster, primeiro carregue o módulo correspondente:
-
Configurando e compilando um projeto com CMake:
- Crie um diretório para a compilação:
- Execute o CMake para configurar o projeto, especificando o diretório do código-fonte:
- Após a configuração, compile o projeto com:
Problemas e suporte¶
Se você encontrar problemas ao compilar software com Make ou CMake, consulte nossa página de suporte para obter ajuda.