Pergunta

Eu apenas comecei a usar Qt e notei que ele usa sua própria ferramenta Make, qmake.

  • Por que o qt usa sua própria ferramenta Make?
  • Existe algo especial que impeça que ele use uma ferramenta padrão?
  • Qmake chama o GCC Compilador C ++?
Foi útil?

Solução

O QT usa o QMake para suportar transparentemente os vários complementos do QT, incluindo "MOC, o compilador de meta-objeto" (que fornece sinais e slots), "UIC, o compilador da interface do usuário" (que cria arquivos de cabeçalho de arquivos .ui Designer), "RCC, o compilador de recursos "(que compila recursos).

Não há nada para impedi -lo de usar qualquer sistema de construção que você deseja. No entanto, é muito mais trabalho. Por exemplo, você precisa executar "MOC" em todos os arquivos de cabeçalho que contém uma classe que possui sinais ou slots. Em geral, não é recomendado, especialmente para alguém que está apenas começando a usar o QT.

O QMake não chama G ++/GCC diretamente. Em vez disso, o QMake cria arquivos nativos em sua plataforma atual. Em Linux, cria arquivos padrão GNU padrão, no Windows, pode gerar arquivos do Visual Studio, no Mac OS X, ele pode gerar arquivos de projeto Xcode. Em seguida, você invoca seu sistema de construção nativo (GNU Make, ou MS Nmake, ou XcodeBuild ou qualquer outra coisa), que chamará seu compilador nativo (G ++/GCC ou qualquer outra coisa).

Outras dicas

Na minha opinião, o qmake é legal para projetos simples (você pode apenas QMake -Project; qmake; fazer), mas horrível e não documentado o suficiente para projetos gerais. Especialmente a funcionalidade de configuração do qmake é uma piada.

Os melhores sistemas de construção que conheço são CMake e WAF (baseado em Python). Nos meus próprios projetos QT, uso o CMake para fazer o trabalho. Assim como o kde-guys :)

Para suportar seu sistema de sinal/slot, o Qt depende de um pré -processador e compilador especial que gera objetos intermediários que fazem grande parte do processamento. Eles se referem a isso como o Compilador de meta-objeto ou Moc.

Ver QT 5 Documentação: Usando o compilador de meta-objeto para detalhes.

O MOC (junto com algumas outras ferramentas intermediárias) funciona em conjunto com qmake; Uma ferramenta de automação de compilação que produz frisos em seu formato nativo (VC ++, G ++, etc.) que criam os arquivos intermediários gerados pelo MOC e todos os seus arquivos de origem no executável final.

qmake foi projetado para ser plataforma cruzada e flexível. Pode ser compatível com o Microsoft Visual Studio e o Xcode.

Você pode encontrar tudo no Manual QMake.

O QMake gera um makefile com base nas informações em um arquivo de projeto. Os arquivos do projeto são criados pelo desenvolvedor e geralmente são simples, mas arquivos de projeto mais sofisticados podem ser criados para projetos complexos. O QMake contém recursos adicionais para apoiar o desenvolvimento com QT, incluindo automaticamente as regras de construção para MOC e UIC. O QMake também pode gerar projetos para o Microsoft Visual Studio sem exigir que o desenvolvedor altere o arquivo do projeto.

Em ordem

a) porque faz muito nos bastidores

b) Sim, veja a)

c) Sim, ele chama G ++ (mas pode apoiar outros compiladores, se você os tiver)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top