Building Qt: 'make clean' faz com que tudo seja recompilado?

1

(Isto se aplica a Qt versões > = 4.7.3.) Eu fiz uma tentativa de construir Qt com parâmetros customizados na minha máquina Debian e realmente levou o AGES para compilar (IIRC mais de 6 horas em um CPU de núcleo único). É por isso que eu queria ter certeza de que não cometeria erros idiotas no processo. No entanto, optei por fazer um make clean para obter os arquivos *.o e outras coisas limpas após a vinculação bem-sucedida. Parecia uma má ideia! Pois eu fiz um make install logo depois disso, e você não vai acreditar, a tentativa make clean fez com que tudo fosse recompilado após o processo de limpeza! Embora até agora, eu tenha pensado que make clean permite uma instalação limpa mesmo com todos os arquivos de objetos e coisas relacionadas removidas. Obviamente, com Qt , as coisas são diferentes.

Na documentação oficial de Qt 4.7 (cf. link ), eles nem sequer mencionou um opcional make clean na sequência de comandos. Como eu sei agora, por um bom motivo. De qualquer forma, eu não posso chamar isso de "cumprimento de padrões" já que eu já compilei centenas de aplicativos de código aberto, e NUNCA fez make clean desencadear qualquer processo de recompilação nem remover nada que devesse ser mantido (a menos que houvesse um bug lá dentro)

    
por syntaxerror 13.10.2012 / 16:15

2 respostas

5

Eu não sei de onde você tirou a ideia de que fazer um make clean antes de um make install era algo que você deveria estar fazendo.

O arquivo canonical INSTALL para autotools soletra o processo:

  1. ./configure
  2. make
  3. make check (opcional)
  4. make install
  5. make installcheck (opcional)

No item 6, diz:

You can remove the program binaries and object files from the source code directory by typing make clean.

(ênfase minha)

make clean é algo que você faz antes de recompilar, para garantir uma compilação limpa e não ter subprodutos que sobraram de execuções anteriores. Você pode fazer isso após a make install se quiser liberar algum espaço, mas manter a fonte e a configuração por perto. Você deve não fazê-lo antes de instalar.

    
por 13.10.2012 / 17:05
1

O script de compilação do Qt funciona assim:

1 First build qmake
2 Generate Makefile for a subprojects (*.pro)
3 Start building libaries, then examples and demo projects

Sim, make clean limpará tudo, menos o seu arquivo de configuração gerado pelo Qt.

Meu truque é remover o "demo" e "exemplos" no arquivo top * .pro, que economiza cerca de 40% do tempo (em uma CPU i5)

De qualquer forma, você pode configurar o ccache para acelerar a compilação, mas isso requer cerca de 2G + de espaço em disco para armazenar em buffer

    
por 14.10.2012 / 02:15