1. O nascimento do GCC!
Em 1985, numa noite escura, quando seus dedos estavam fora de vista, um homem estranho, com barba, corpo baixo e cabelo bagunçado começou a escrever um conjunto de compiladores em linguagem C. Essa ecófonia, mais tarde conhecida como o "maior programador" e "pai do software livre", foi Richard Stallman. Após dois anos de trabalho árduo, Richard Stallman, que tem uma barba mais longa e cabelos mais bagunçados, concluiu a primeira versão do compilador C, que ele chama de GNU C Complier, que agora é a fonte do famoso GCC. Mais tarde, o GCC se desenvolveu rapidamente, e agora o GCC pode compilar não apenas a linguagem C, mas também C++, Fortran, Pascal, Objective-C, Java, Ada e outras linguagens. Nos anos 80 e 90 do século passado, a frequência da CPU, o tamanho do disco rígido e o tamanho da memória dos computadores pessoais eram todos medidos em MB ou até KB, e o número de arquivos de programa que precisavam ser compilados era pequeno, e comandos GCC eram suficientes para lidar com isso.
Segundo, novos problemas surgiram! (fazer & fazer arquivo)
Com a melhoria e popularização do desempenho dos computadores, um projeto de software contém cada vez mais arquivos-fonte, como o Linux, que é facilmente confuso e carregado de trabalho, fácil de confundir e carregado de trabalho, o que deixa as pessoas loucas.
Richard Stallman e Roland McGrath co-desenvolveram o make e o makefile para resolver esse problema. A ferramenta make pode ser vista como uma ferramenta inteligente de processamento em lote, que não tem a função de compilar e vincular, mas usa um método semelhante ao processamento em lote – chamando os comandos especificados pelo usuário no arquivo makefile. O que é um makefile? O makefile é um arquivo script, assim como a partitura de uma música, a ferramenta make é como um maestro, o maestro direciona toda a orquestra a tocar de acordo com a partitura, e a ferramenta make é compilada e vinculada de acordo com os comandos no makefile. O comando makefile contém comandos para chamar gcc (ou outro compilador) para compilar um arquivo fonte.
3. Novos problemas surgiram novamente! (Cmake & CMakelist)
O makefile pode ser escrito manualmente em alguns projetos simples, mas quando o projeto é muito grande, também é muito difícil escrever o makefile manualmente. E makefiles para diferentes plataformas surgiram um após o outro, incluindo GNU make, qmake do QT, MSnmake da Microsoft, BSD Make (pmake), Makepp, etc. Essas ferramentas Make seguem especificações e padrões diferentes, e o formato Makefile que apresentam varia bastante. Isso representa um problema sério: se o software quiser ser multiplataforma, deve ser capaz de compilar em diferentes plataformas. Se você usar a ferramenta Make acima, terá que escrever um makefile para cada padrão, o que será um trabalho complicado, e se você mudar o makefile da plataforma, terá que remodificá-lo.
Então, nesse momento, a ferramenta Cmake apareceu, e o Cmake pode gerar um arquivo makefile para o make acima com mais facilidade. Claro, o cmake também tem outras funções, ou seja, pode gerar makefiles que podem ser usados na plataforma correspondente entre plataformas, e você não precisa modificar por conta própria. cmake é a camada superior do Makefile, e seu propósito é produzir makefiles portáteis e simplificar a enorme carga de trabalho de escrever makefiles sozinho. Mas o que o cmake usa para gerar um makefile? Também precisa gerar um makefile baseado em um arquivo chamado arquivo CMakeLists.txt (nome científico: arquivo de configuração). No fim das contas, CMakeLists.txt quem escreve o documento? Claro, você mesma escreveu.
Quarto, novos problemas surgiram novamente! (Ninja)
À medida que a engenharia de software se torna maior e mais complexa, o problema da lenta execução da produção se torna cada vez mais sério.
Como resultado, um programador do Google lançou o Ninja, uma ferramenta de construção focada em velocidade. Ninja não tem todos os tipos de recursos avançados, a sintaxe e o uso são muito simples, e especifica o que fazer em detalhes, então começa a compilar muito rápido. De acordo com testes do mundo real: com mais de 30.000 arquivos-fonte, também é possível iniciar uma build real em 1 segundo. Em contraste, Makefiles escritos por engenheiros seniores também levam de 10 a 20 segundos para começar a ser construídos.
5. O final perfeito até agora!
O Cmake pode gerar ferramentas .ninja e .makefile. Como muitas pessoas não estão familiarizadas com como escrever arquivos makefile e arquivos ninja, o cmake só precisa de uma descrição simples do arquivo de código-fonte (ou seja, CMakeLists.txt arquivo) para gerar automaticamente um arquivo makefile do projeto ou arquivo ninja, e então começar a compilar através de ninja ou make.
5 minutos para entender make/makefile/cmake/nmake
Recentemente, você foi feito por make, cmake, makefile... ... Essas coisas são tontas, veja o artigo a seguir, talvez você consiga entender claramente.
1. GCC É a GNU Compiler Collection, ou simplesmente um compilador, que pode compilar muitas linguagens de programação (incluindo C, C++, Objective-C, Fortran, Java, etc.).
Quando nosso programa tem apenas um arquivo fonte, podemos compilá-lo diretamente com o comando gcc.
Mas e se nosso programa contiver muitos arquivos fonte? Ao compilar comandos gcc um por um, é fácil se confundir e exigir muito trabalho, então a seguinte ferramenta de criação aparece.
2. Faça A ferramenta make pode ser vista como uma ferramenta inteligente de processamento em lote, que não tem a função de compilar e vincular, mas usa um método semelhante ao processamento em lote – chamando os comandos especificados pelo usuário no arquivo makefile.
3. makefile O que é isto?
Simplificando, assim como a partitura de uma música, a ferramenta make é como um maestro, o maestro direciona toda a orquestra a tocar conforme a partitura, e a ferramenta make compila e vincula conforme os comandos no makefile. O comando makefile contém comandos para chamar gcc (ou outro compilador) para compilar um arquivo fonte.
O makefile pode ser pego manualmente em alguns projetos simples, mas quando o projeto é muito grande, o makefile manuscrito também é muito problemático.
4. cmake O cmake pode facilmente gerar um arquivo makefile para o make acima. Claro, o cmake tem outras funções melhores, ou seja, pode gerar makefiles que podem ser usados na plataforma correspondente entre plataformas, então não precisamos modificar nós mesmos.
Mas o que o cmake usa para gerar um makefile? Também precisa gerar um makefile baseado em um arquivo chamado arquivo CMakeLists.txt (nome científico: arquivo de configuração).
5. CMakeList.txt No fim das contas, CMakeLists.txt quem escreve o documento? Querida, está escrito pela sua própria autoria.
6. Nmake O que é nmake?
nmake é um comando paralelo no Microsoft Visual Studio, que precisa instalar o VS, que na verdade pode ser considerado equivalente ao modelo do Linux, entendeu?
Transferido de:
O login do hiperlink está visível.
O login do hiperlink está visível.
O login do hiperlink está visível.
|