Casa > Q > Qual É A Diferença Entre Cmake E Make?

Qual é a diferença entre CMake e Make?

Por que precisamos do Make?

Em um projeto, às vezes o número de arquivos de código fonte pode ir acima de 1000. Nesses casos, é um trabalho muito desafiador manter um registro de todas as dependências. Além disso, o processo de compilação em tais casos leva muito tempo, às vezes mais de uma hora. Porque, cada vez que modificamos mesmo um único arquivo, precisamos compilar e ligar todos os arquivos desde o início, o que é um processo muito demorado.

Nesses casos, se tivermos acesso a uma representação em árvore de todas as dependências, e a uma lista de arquivos que nós'alteramos desde a última compilação bem sucedida, então, podemos escolher apenas compilar os arquivos que nós'alteramos e depois ligar todos aqueles juntos.

main-qimg-d8b39ee68176342be202979cb7eb6d4c

Isso nos pouparia um tempo significativo, pois, muito poucos arquivos são normalmente alterados em 1 go.

Como podemos resolver esse problema?

Make, Ninja, Ant, Gradle, MSVC são alguns dos sistemas de compilação. Para construir um projeto, o desenvolvedor escreve um código especial em 'build file', que é diferente do código fonte do projeto's. Este arquivo de build contém as informações da árvore de dependência; e o sistema de build usa esse arquivo de build para compilar e ligar os códigos-fonte. No caso de 'Make' sistema de compilação, o desenvolvedor escreve um 'makefile' para construir o projeto.

O que é CMake?

CMake é um sistema de meta-construção ou gerador de sistema de compilação. A ferramenta CMake é capaz de escrever o makefile para nós.

Por que precisamos aprender esta nova ferramenta 'CMake' para esta simples aplicação?

A construção de projetos C++ não é padrão em todas as plataformas. Isto significa que, mesmo que você tenha o código fonte e o makefile de um projeto C++ de sua máquina Linux, você não pode construir diretamente esse código dentro do sistema operacional Windows. Da mesma forma, se você tem uma solução Visual Studio a partir da máquina Windows, você não pode compilá-la diretamente no ambiente Linux. CMake é capaz de resolver este problema criando os arquivos do sistema de compilação baseado em plataforma definindo algumas flags.

Isso significa que, uma vez que você tenha compartilhado seus códigos de projeto para qualquer um que possa ser compilado usando CMake, você não precisa se preocupar com seu ambiente de desenvolvimento. CMake cuidará disso.

Caso você queira aprender a ferramenta CMake, eu tenho uma série de palestras feitas chamada 'Master CMake for Cross-Platform C++ Project Building[1]' para iniciantes absolutos.

Você também pode visitar este vídeo do YouTube para visualização.

Notas de rodapé

[1] Tutoriais do CMake para iniciantes

De Aleta Stoicu

Devo comprar uma bateria nova ou um telefone novo? Neste momento, eu tenho um iPhone 6. :: Concertos: Porque é que as taxas de Ticketmaster são tão altas?