Makefiles O que é mak a efi f le make
|
|
|
- Vítor Sá Galindo
- 9 Há anos
- Visualizações:
Transcrição
1 O que é O makefile é um arquivo para configuração de compilação utilizado pelo programa make, cuja ideia é simplificar e agilizar a compilação de programas.
2 Vantagens e uso Evita a compilação de arquivos desnecessários. Por exemplo, se o programa utiliza 120 bibliotecas e altera-se apenas uma delas, o makefile descobre (comparando as datas de alteração dos arquivos fontes com as dos arquivos anteriormente compilados) qual arquivo foi alterado e compila apenas a biblioteca necessária. Escrever um arquivo makefile é bastante simples. O arquivo é escrito em formato texto DOS e pode ser escrito usando qualquer editor de texto puro (como o pico, gedit ou Notepad).
3 Forma de utilização Para utilizar o makefile basta criar o arquivo com o nome makefile no diretório/pasta onde se encontram os arquivos fonte para compilar e executar o programa make no mesmo diretório.
4 O makefile funciona de acordo com regras A sintaxe de uma regra é: regra: dependências <TAB> comando <TAB> comando <TAB> comando <TAB>
5 Dependências: Antes de executar os comandos de uma regra, o programa make certifica-se que todas as dependências foram satisfeitas. Uma dependência pode ser outra regra ou então algum arquivo necessário para execução dos comandos. Por exemplo, a regra de compilação de um executável pode ter como dependência as regras que compilam as bibliotecas necessárias e também os arquivos fonte necessários.
6 Lista de comandos: Após as dependências, temos a lista de comandos. Os comandos são indentados com TAB s e não com espaços! Cada comando pode ser qualquer chamada de um programa de linha de comando; por exemplo, Comandos do Sistema Operativo: rm, copy, mkdir, Chamada ao compilador: gcc, cc,
7 Regra: A regra pode ter qualquer nome. Por exemplo, o nome da regra que compila o arquivo programa.c pode ser compilar.
8 Um exemplo simples: compilar: programa.c programa.h gcc -o programa.exe programa.c Nestemakefile temos apenas uma regra de nome compilar que gera o executável do programa ( programa.exe ). O programa make, antes de executar os comandos desta regra, verifica se os arquivos programa.c e programa.h existem. Só então são executados os comandos, no caso a compilação.
9 No caso da dependência ser outra regra, a regra da dependência é avaliada antes da regra dependente. Por exemplo: executar: compilar.\programa.exe compilar: programa.c programa.h gcc -o programa.exe programa.c A primeira regra a ser avaliada é sempre a primeira do arquivo; neste caso, a regra executar. Porém, durante a avaliação da regra executar, é encontrada a dependência compilar.
10 executar: compilar.\programa.exe compilar: programa.c programa.h gcc -o programa.exe programa.c Como existe uma regra com o nome compilar no arquivo, o make sabe que se trata de uma outra regra e não de um arquivo. Antes de executar os comandos da regra executar, o make avalia a regra compilar, verifica as dependências e executa os comandos da regra compilar.
11 executar: compilar.\programa.exe compilar: programa.c programa.h gcc -o programa.exe programa.c Agora a regra compilar está satisfeita e o make pode executar os comandos da regra executar, que neste caso executa o programa compilado (.\programa.exe). O programa só é executado se a compilação ocorrer com sucesso. Caso haja um erro de compilação, a avaliação para e o comando da regra executar não são executados.
12 Outro caso interessante é quando se chama o make duas vezes consecutivas. Se a primeira chamada à compilação ocorreu sem problemas, Na segunda chamada o programa não é compilado. Ou seja, o make percebe que não é necessário compilar o programa e salta a regra compilar, indo direto para a regra executar.
13 Um outro exemplo: all: iniciar compilar executar Bem vindo ao makefile. Tentar executar o programa. executar:.\programa.exe compilar: programa.c programa.h gcc -o programa.exe programa.c Neste caso, o makefile inicia-se pela primeira regra (all) com três dependências: iniciar, compilar e executar.
14 all: iniciar compilar executar Bem vindo ao makefile. Tentar executar o programa. executar:.\programa.exe compilar: programa.c programa.h gcc -o programa.exe programa.c iniciar: escreve uma mensagem de entrada compilar: compila o programa executar: executa o programa (se a compilação tiver sucesso)
15 Um outro exemplo: all: compilar executar limpar executar:.\programa.exe compilar: programa.c programa.h gcc -o programa.exe programa.c limpar: rm programa.exe Neste caso, o makefile depois de compilar e executar, remove o ficheiro executável (programa.exe).
16 Não se tem que começar sempre pela primeira regra que aparece. Pode-se informar o make para executar apenas uma das regras. Para isso passa-se como parâmetro na linha de comando o nome da regra que queremos executar. Por exemplo: make limpar
1/16 MAKEFILES Makefiles Programação II
1/16 MAKEFILES Definição 2/16 Definição O makefile - é um arquivo para configuração de compilação utilizado pelo programa make, - a ideia é simplificar e agilizar a compilação de programas. Vantagens e
A ferramenta make. A - Introdução. O C é orientado para a produção de aplicações informáticas de grande dimensão
A - Introdução O C é orientado para a produção de aplicações informáticas de grande dimensão Na geração de aplicações informáticas há ficheiros gerados a partir de outros: logo, os segundos têm obrigatoriamente
IDES E PROGRAMAÇÃO. Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias
1 IDES E PROGRAMAÇÃO Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias {claudio,macdias}@icmc.usp.br 2 Agenda Conceitos Instalação e Configuração Compilação e Execução de Código IDEs Exemplo
bibliotecas e makefiles em C/C++
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Uma breve introdução à criação de bibliotecas e makefiles em C/C++ Moacir Pereira Ponti Jr. 2011 1 Arquivos de cabeçalho e bibliotecas
OpenWrt: modelagem do
Instituto Federal do Ceará Essas apresentação possui um acumulado de informações de mais de 9 meses de pesquisa e desenvolvimento em redes mesh utilizando o firmware Openwrt. OpenWrt: modelagem do 1 código
1 Como compilar seu código? 2 Comandos de terminal:
Manual Básico 2 COMANDOS DE TERMINAL: 1 Como compilar seu código? É necessário compilar seu código para testar seu programa e saber se a lógica utilizada está correta para solucionar todas as possíveis
Programação 2010/2011 MEEC
Programação 2010/2011 MEEC Code::Blocks Criação de projectos O Code::Blocks é um IDE (ambiente de desenvolvimemnto integrado) que permite a escrita do codigo, compilação, correcção de erros e depuração
Objetivos. Responder o que é Java; Mostrar as vantagens e desvantagens do Java; Compilar e executar um programa simples.
O que é Java Material baseado na apostila FJ-11: Java e Orientação a Objetos do curso Caelum, Ensino e Inovação, disponível para download em http://www.caelum.com.br/apostilas/ 1 Objetivos Responder o
Introdução ao Python. Programa Computacional
Programa Computacional É um algoritmo escrito em uma linguagem computacional (C, Fortran, Pascal, MATLAB, Python, etc.). É a tradução do algoritmo para uma linguagem que será interpretada pelo computador.
Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores
Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores 1 Objetivo Roteiro de Laboratório 2 Ambiente de Desenvolvimento
Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Primeira Aula Prática
Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Primeira Aula Prática 1 Introdução No Unix não existe uma interface padrão. Você pode escolher, alterar, tirar e muito mais com diversas
Uma breve introdução a C++ no Eclipse
Uma breve introdução a C++ no Eclipse J.P. Kerr Catunda #USP: 2961692 IME-USP 8 de fevereiro de 2009 Este documento, junto com seu fonte, é distribuido sob a licença Creative Commons, que pode ser vista
Ambiente de desenvolvimento
Linguagem C Ambiente de desenvolvimento Um programa em C passa por seis fases até a execução: 1) Edição 2) Pré-processamento 3) Compilação 4) Linking 5) Carregamento 6) Execução Etapa 1: Criação do programa
Sistemas Operacionais. Laboratório 1 (Ambiente de Aprendizado)
Sistemas Operacionais Laboratório 1 () Roteiro Linux em modo texto Acesso Interpretador de comandos Comandos Básicos Tratamento de Arquivos e Diretórios (Pasta*) Permissões Processos Editor de Texto Criação
COMPILAÇÃO. Ricardo José Cabeça de Souza
COMPILAÇÃO Ricardo José Cabeça de Souza www.ricardojcsouza.com.br Programas Código-fonte escrito em linguagem de programação de alto nível, ou seja, com um nível de abstração muito grande, mais próximo
Organização de programas em Python. Vanessa Braganholo
Organização de programas em Python Vanessa Braganholo [email protected] Vamos programar em Python! Mas... } Como um programa é organizado? } Quais são os tipos de dados disponíveis? } Como variáveis podem
AUTOMAÇÃO E AUTOCONFIGURAÇÃO
http://blogs.msdn.com/blogfiles/willy-peter_schaub AUTOMAÇÃO E AUTOCONFIGURAÇÃO Laboratórios de Informática 2014-2015 João Paulo Barraca, André Zúquete, Diogo Gomes Automação de Tarefas GNU Make Compilação
Introdução à Linguagem C. K&R: Capitulo 1
Introdução à Linguagem C K&R: Capitulo 1 Introdução Desenvolvida em 1972 por Dennis Ritchie, nos Bell Labs, para utilização no sistema operativo UNIX O standard ANSI C (ISO/IEC 9899:1990) foi adoptado
Guia Rápido: GCC, Makefile e Valgrind.
Guia Rápido: GCC, Makefile e Valgrind. Alexandro Ramos 10 de setembro de 2015 1 Sumário 1 Introdução 3 2 GCC 3 2.1 Outros parâmetros úteis no GCC....................... 4 3 Makefiles 6 3.1 Makefile 1....................................
No Windows há basicamente dois tipos de programas de usuário:
Introdução O que vem a ser um programa em C? Você talvez já tenha ouvido falar que um compilador é um programa ou ferramenta que transforma um programa fonte escrito em uma linguagem de programação de
Figura 1: Operações para gerar um programa executável.
Uma jornada de mil milhas começa sempre com um simples passo. Lao Tse. PRIMEIROS PASSOS Para poder construir programas em C é necessário utilizar um ambiente de desenvolvimento. Por ambiente de desenvolvimento
Introdução a Sistemas Abertos. Ambiente shell
Introdução a Sistemas Abertos Ambiente shell Conteúdo Programático Login e Logout Iniciando e Desligando o Sistema Tipos de arquivo Texto Binário Arquivos e Diretório Manipulação de arquivos e diretório
UTILIZANDO O CODE BLOCKS
UTILIZANDO O CODE BLOCKS Prof. André Backes INTRODUÇÃO Existem diversos ambientes de desenvolvimento integrado ou IDEs (Integrated Development Environment) que podem ser utilizados para a programação em
Sistemas Operacionais I Aula Prática 1 - Introdução ao Linux
Sistemas Operacionais I Aula Prática 1 - Introdução ao Linux Objetivo Introdução ao desenvolvimento de aplicações em linguagem C no ambiente Linux/POSIX Familiarização com as ferramentas necessárias: gcc,
PROGRAMAÇÃO I. Introdução
PROGRAMAÇÃO I Introdução Introdução 2 Princípios da Solução de Problemas Problema 1 Fase de Resolução do Problema Solução na forma de Algoritmo Solução como um programa de computador 2 Fase de Implementação
Nota sobre esta versão: Esta versão (Cekeikon 5.6) vem com duas versões de OpenCV. Por isso, o tamanho do arquivo é grande.
Cekeikon 5.6 para Linux x86_64 Última revisão: 04/02/2019 - Hae Yong Kim Rotinas e Programas em C++ para Processamento de Imagens e Aprendizagem de Máquina. Nota sobre esta versão: Esta versão (Cekeikon
Linguagens de Domínio Específico
Linguagens de Domínio Específico Fabio Mascarenhas 2017.1 http://www.dcc.ufrj.br/~fabiom/dsl Por que DSLs? Melhorar a produtividade dos programadores input =~ /\d{3}-\d{3}-\d{4}/ Facilitar a escrita e
Arquitetura de Computadores
Arquitetura de Computadores Apresentação Teóricas Prof. Helder Daniel Gab: 2.66 [email protected] Práticas Prof. Amine Berquia Gab: 2.?? [email protected] AA2011/2012 ArqC - DEEI - UAlg 2 / Programa Práticas
Disciplina de Lógica e Linguagem de Programação Desenvolvido pelo professor Danilo Giacobo Ferramenta Code::Blocks
Disciplina de Lógica e Linguagem de Programação Desenvolvido pelo professor Danilo Giacobo Ferramenta Code::Blocks Manual de utilização LISTA DE FIGURAS Figura 1 - Tela Inicial do software Code::Blocks...
Curso de C. Introdução by Arnaldo V. Moura e Daniel F. Ferber 3/10/ :43 AM
Curso de C Introdução 1 Introdução Roteiro: Recordando Algoritmos Linguagem de Programação O computador Instruções de Máquina Níveis de Abstração Compilação 2 Algoritmos Recordando: Algoritmo: conjunto
Introdução a shell scripts
Introdução a shell scripts O que é? O que é Windows e Linux Shell script Um script é um arquivo que guarda vários comandos e pode ser executado sempre que preciso. Os comandos de um script são exatamente
Ana Paula Tomás. Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto 2010/2011
Ana Paula Tomás Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto 2010/2011 Aula 1 Objectivos e programa da disciplina. Critérios de avaliação. Um primeiro programa
Tutorial: Aprenda a criar seu próprio makefile. Darcamo (Forúns Ubuntu)
Tutorial: Aprenda a criar seu próprio makefile Darcamo (Forúns Ubuntu) 08 de Junho de 2007 Resumo Eu estava acostumado a sempre deixar a IDE criar o makefile pra mim e nunca liguei muito pra ele, mas recentemente
Programação de Sistemas
Programação de Sistemas Make reconstrução de aplicações Programação de Sistemas Make : 1/17 Objectivos Nos projectos de desenvolvimento de software são frequentes as ligações de derivação entre produtos.
Programação 2017/2018 2º Semestre
Mestrado em Engenharia Electrotécnica e de Computadores Programação 2017/2018 2º Semestre Aula de Problemas 1 Os alunos deverão executar os passos aqui descritos no seu computador pessoal ou no laboratório.
ALGORITMOS AULA 01. Baseado nas aulas do Prof. Jorgiano Vidal
ALGORITMOS AULA 01 Baseado nas aulas do Prof. Jorgiano Vidal LINGUAGEM C Uma das grandes vantagens do C é que ele possui tanto caracterìsticas de "alto nìvel" quanto de "baixo nìvel". Linguagem de propósito
Obs.: para realizar estas atividades tenha certeza de que já tenha instalado no sistema operacional o Java JDK e o NetBeans.
1 - Criando meu primeiro programa em Java Para criar um programa Java podemos utilizar um editor de textos (Bloco de Notas/Windows, Notepad ++ ou GEdit/Linux) e o console do sistema operacional, ou um
Sistema Operacional Unidade 11.2 Shell Script: estruturas condicionais. QI ESCOLAS E FACULDADES Curso Técnico em Informática
Sistema Operacional Unidade 11.2 Shell Script: estruturas condicionais Curso Técnico em Informática SUMÁRIO SHELL SCRIPT COM IF... 3 OPERADORES RELACIONAIS... 3 COMPARAÇÕES EM SCRIPTS... 3 MAIS OPERADORES...
Algoritmos e Técnicas de Programação Introdução Givanaldo Rocha de Souza
Algoritmos e Técnicas de Programação Introdução Givanaldo Rocha de Souza [email protected] http://docente.ifrn.edu.br/givanaldorocha Conceitos Lógica de Programação técnica de encadear pensamentos
Memória. Arquitetura de Von Neumann. Universidade do Vale do Rio dos Sinos Laboratório I Prof.ª Vera Alves 1 CPU. Unidade de controle ULA
Universidade do Vale do Rio dos Sinos Laboratório I Prof.ª Vera Alves 1 Arquitetura de Von Neumann CPU Unidade de controle Unidade de entrada Unidade de saída ULA Von Neumann era um gênio. Falava muitos
CMD. Prompt de comando do Win 10. Professor Jorge Maestre Carvalho
CMD Prompt de comando do Win 10 Professor Jorge Maestre Carvalho Tela Iniciando A partir do Windows ME o DOS foi substituído por um emulador do DOS. Para entrar no programa, vá em Iniciar -> Executar.
Linguagem de Programação II Programação Orientada a Objetos. Ambientes de Programação
Linguagem de Programação II Programação Orientada a Objetos Ambientes de Programação Prof. Alessandro Borges 2 Tópicos Prompt de comando JDK IDE NetBeans Eclipse Jbuilder Visual Café Visual J++ NetBeans
Desenvolvimento de Aplicações Desktop
Desenvolvimento de Aplicações Desktop Conceitos Básicos de Programação Professor: Charles Leite O Desenvolvimento de Programas A programação consiste em indicar como o computador (hardware) deve trabalhar
3. Linguagem de Programação C
Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3. Linguagem de programação C 3.1. Conceitos
105 Shell Script. João Bosco Teixeira Junior
105 Shell Script João Bosco Teixeira Junior Compilação x interpretação Compilação Fontes Geração do código Pré Processador Compilador Montador(Assembler) Bibliotecas Compartilhadas Ligador (Linker) Executável
Ambientes integrados para análise estatística em SIG interfaces R/C++
Ambientes integrados para análise estatística em SIG interfaces R/C++ Leonardo Bacelar Lima Santos 04 de abril de 2012 1 Introdução e motivação Interfaces entre ambientes Sistemas de Informações Geográficas
Linguagem C: diretivas, compilação separada. Prof. Críston Algoritmos e Programação
Linguagem C: diretivas, compilação separada Prof. Críston Algoritmos e Programação Diretivas do pré processador Permite que o programador modifique a compilação O pré processador é um programa que examina
Algoritmia e Programação APROG. Tecnologia JAVA. IDE Netbeans. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31
APROG Algoritmia e Programação Tecnologia JAVA IDE Netbeans Nelson Freire (ISEP DEI-APROG 2012/13) 1/31 Tecnologia Java Sumário Tecnologia Java Desenvolvimento de Programas Ambientes de Desenvolvimento
Lógica Proposicional. Respostas dos exercícios
Lógica Proposicional Respostas dos exercícios Exercício 5 Use a tabela-verdade para verificar a validade dos argumentos a seguir Se o time joga bem, então ganha o campeonato. Se o time não joga bem, então
Algoritmos, Estruturas de Dados e Tipos Abstratos de Dados (TADs)
Algoritmos, Estruturas de Dados e Tipos Abstratos de Dados (TADs) SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic
Introdução ao Terminal do Ubuntu
Introdução ao Terminal do Ubuntu Bruno Santos 2016 Sumário 1 Introdução........................................... 2 2 O terminal.......................................... 2 3 Comandos do terminal....................................
Desenvolvimento de programas. Análise do problema. Análise do problema. Análise do problema. Desenvolvimento do algoritmo. Codificação do programa
Desenvolvimento de programas 1 Análise do problema Desenvolvimento do algoritmo Codificação do programa Compilação e execução Teste e depuração Análise do problema 2 Conhecer exatamente o que o problema
Instalação JDK. Joyce França. Professora de Ciência da Computação - IFNMG
Instalação JDK Joyce França Professora de Ciência da Computação - IFNMG Máquina Virtual Java utiliza-se do conceito de máquina virtual, onde existe uma camada extra entre o sistema operacional e a aplicação,
