Transcrição do áudio
É muito comum você precisar de baixar um programa de computador e ele é muito complexo e você quer instalar ele na sua máquina. Qual a vantagem de você baixar um projeto e compilar ele na sua máquina? Sempre que você compila ele na sua máquina, você compila ele para a sua máquina. Então a compilação é muito redonda para a sua máquina. As bibliotecas que aí tem, o número de processadores que aí tem, a arquitetura que aí tem, tudo que aí tem. Quando eu compilo na minha máquina e distribuo para o mundo, eu faço uma compilação genérica para o Pinti-100, que seria a nossa primeira máquina na nossa arquitetura. Ali seria o Pinti-100 que seria o X86. Bom, o que acontece? É uma compilação genérica para múltiplas máquinas. Então ele tem um desempenho ruim. Então se eu quero algo de alta performance, eu baixo e executo o make na máquina e ele vai naturalmente compilar a minha máquina. Porém, nem sempre nesses pacotes de instalação que vem uma centena de arquivos lá dentro, vão vir todas as bibliotecas e talvez você vai ter que acertar as bibliotecas com o comando CUR ou com o comando WGET. Você vai ter que fazer download das bibliotecas, instalar as bibliotecas ali e aí você vai partir para uma luta insana em o centro de distância atrás das bibliotecas. Muito difícil fazer esse tipo de instalação, mas a instalação fica filé. Se você utiliza o projeto NPM, você vai ver que lá no seu node ele traz muita coisa em C e ele compila no tempo de execução lá. Por isso que quando você está com seu node na sua máquina programando e você manda o diretório node-modules para o local da paul em algumas coisas. Por exemplo, uma biblioteca chamada da D-A5 da paula. Legal? Ah, por que isso? Porque foi compilada na sua máquina para a sua máquina e lá é outra máquina. Lógico, nem sempre naturalmente aquele programa em C compilado da sua máquina para a sua máquina não dá problema em outra máquina. Mas há grande chance, como o D-A5 do NPM. Quando você fazer essa aula, você vai precisar do Makefile, então você vai ter que dar um comando Make sobre o arquivo chamado Makefile com o M maiúsculo, cara que desgraça, cara que fez isso. O cara que fez isso tinha que apanhar, cara. O filho da puta tinha que apanhar o cara que fez isso. Nós não colocamos no M maiúsculo em nome de arquivo. A não ser quando você está programando em Java, né? Fazer o quê? Você vai precisar do Build Essential para você ter o Make. E você vai precisar do GmaisMais e o GCC2 Coupiladores, muito importante isso aqui. Basicamente o Makefile, ele é um arquivo assim. Onde está esse curso branco? Deve ter um P na frente, tá? Prefix. Sem querer na hora, um pouco antes de bater o printscreen. Eu ranquei o P, cara. Que merda, tá? Tem um prefix ali, tá? Qual é o prefix? É um caminho. O caminho é o SR local. Beleza? Bom, para que eu tenha dependências, eu tenho ali o AL. AL é um conto. Make AL. Entendeu? Making Style. Olha lá o Make Style. Make Clean. Entendeu? Make Disclean. Make Remove. Make Purge. Você pode criar, cara. E aí faz o que você tiver que fazer. Imagina que eu tenho um projeto gigantesco, um centeno de arquivos nesse Makefile vai ser enorme. Mas mesmo assim, é melhor dar manutenção nesse Makefile do que ficar compilando no terminal um por um das centenas de arquivos que vai ter lá. Então eu começo a colocar. Por exemplo, primeiro arquivo é o SRC Hello. É uma língua, tá escrito em C. Então eu vou chamar o cumprida do C e eu vou passar os flags do CPP, os flags do C. Eu vou passar os parâmetros e eu vou passar aqui a entrada inputada no Make para passar os parâmetros. Repare. Para executar o AL, eu tenho que executar o SRC Hello que é esse cara aqui. Ah, pera aí. E o install? Esse é o SRC Hello. Ele executa o Hello e depois ele executa o install. Ah, então é assim que eu coloco as dependências de compilação. Quem depende de quem de compilação. Entender a jogada? Então é assim que eu consigo fazer a compilação de múltiplos e simples assim. É lógico, né? Então é simples que esse aqui pequeno óbvio. Bom, então vou mostrar para vocês como você faz aqui. Atualmente, eu vou ensinar você a fazer um ponto de deb, um pacote de instalação. Só que você vai programar um programa Hello.C. É um código idiota, tá cara? Esse código aqui é um C, não é C mais mais. E ele está dizendo assim, olá, visitantes, visite lá o canal do AI Ad Online. Valeu. Está aqui dentro de SRC Hello.C. Legal? E repare que eu tenho dentro do diretório do pacote, eu tenho Makefile e um diretório SRC dentro do SRC. Eu tenho Hello. Esse comando que eu usei para fazer essa imagem, que é o Tree. O Tree é um comando opcional do mundo débil. Ele, eu acho que ele já está no bonto, mas no débil ele é opcional, você pode baixar. Sudo, apt, install, Tree. E ele instala. Legal? Então repare a estrutura do pacote. Lógico, não é um pacote ainda, é um diretório, mas eu vou transformar esse diretório todinho em um pacote. Então eu faço isso aqui. No Makefile eu tenho então os parâmetros de compilação. Lembre-se que tem um P, tá galera? Os parâmetros de compilação. Seria o Makefile. E ali dentro do arquivo Hello.C eu tenho esse código aqui. Bom, então está aqui o P, que é bonitinho, agora corrigido. Os flags estão todos colocados, o CPP flag entrou. E aqui é um Echo, tá? Você não precisaria dessa linha de Echo aqui, que ocupa uma, duas, três linhas. Poderia ser só essa linha aqui de compilação, já mataria. Beleza? O Client RM, sempre que você vai executar um comando no terminal, tem um tracinho na frente, tá? Tá vendo? Beleza? MKD tem um tracinho na frente, tá? Então, aí eu estou explicando a questão dos flags, os flags do C mais mais, os flags do C. Cara, os flags são muito importantes, tá? Por exemplo, só para ver se estão a noção, o tamanho do int no C mais mais não é o mesmo em todos os Linux, em todas as plataformas, cara. É baseado no CPP flags, que você tem o tamanho de bits do número inteiro. CCC é uma variável que possui o compilador, padrão. Isso aqui é uma variável que pode ser um GCC, pode ser um G mais mais. Então, quando você fez tudo aquilo, preste atenção, você montou tudo aquilo, fez um Makefile, você fez ou você mais mais? Você tem que entrar dentro do diretório, onde está o arquivo Makefile com o M maiúsculo, o minutivo de uma torce. Então, você executa o comando Make. Quando você executa o comando Make, por não passar nenhum parâmetro, ele vai usar o Makeout. O Makeout vai comprelar tudo que é e ali em C. O que o Make não requer tudo? Porque você está compilando dentro da sua área de usuário. Olha aqui a informação que você está na área do usuário, dentro do diretório do pacote Make. Então, aqui você pode, naturalmente, ter acesso. Então, você executa o Make sem o sudo por causa disso. Mas, quando você executa o Make install, tem que ter o sudo por que? Vamos voltar lá no nosso arquivo aqui de prefixo. O Make install, ele vai copiar um arquivo chamado Relow para dentro do diretório Bindleton Linux, que é uma área reservada e protegida. Então, o Make install precisa obrigatoriamente ser de sudo por causa dos comandos que ele vai executar aqui dentro do alvo. Então, ele vai gerar esse C aqui, um programa no Make. O Make faz esse cara aqui. E o Make install pega esse cara aqui e joga dentro do barra Bind, dentro do prefixo. E aí o teu programa existe. O teu programa existe porque agora ele está lá dentro de um caminho que está no PFE. Vocês já sabem o que é o PFE. Então, repare que eu acabei de mostrar para vocês, gente. Como você faz um programa simples? Como você cria um arquivo simples de compilação? Como você estrutura um hot como diretório? Ainda não é um ponto debe. Ele vai virar um ponto debe daqui a pouco. E como você executa o Make para você gerar os executáveis tudo bonitinho? E o Make install para você testar. Beleza? No próximo vídeo, eu vou falar justamente sobre instalação de baixo nível. E aí nós vamos falar de pacotes, ponto debe. Bom, provavelmente você terá que transformar esse diretório num pacote, ponto debe. Até lá, até mais. Tchau.