3
UNIVERSIDADE FEDERAL DO PARÁ INSTITUTO DE TECNOLOGIA FACULDADE DE ENGENHARIA DA COMPUTAÇÃO Disciplina: Projetos de Engenharia I Projeto 4 - Ferramentas GNU para Desenvolvimento de Software Relativamente Complexo I) Objetivos: 1) Familiarizar o aluno com as ferramentas GNU para desenvolvimento de software 2) Utilizar um software para controle de versões, mais especificamente o SVN 3) Usar as ferramentas GNU gcc, configure e make, e aprender a escrever Makefiles. Manipular as opções do configure ao instalar um programa. 4) Usar o find, pipe |, xargs, cat e grep para encontrar palavras-chave em arquivos abaixo de um dado diretório raiz, fazendo recorrência nos subdiretórios. 5) Ter uma ideia das ferramentas da coleção GNU Binutils, em especial o ld (linker), as (assembler), gprof, nm e strings. 6) Ter idéia das diretivas de compilação para o pré-processador (#define, #ifndef, etc.), do processo de apenas compilar sem linkar com "gcc -c" e de linkar com ld ou gcc. 7) Compilar softwares relativamente sofisticados, para entender as complicações inerentes de se achar as bibliotecas necessárias, configurar o compilador, estudar as mensagens de erro, usar o google para achar casos de erro semelhantes, comunicar-se através das listas de discussão, etc. 8) Iniciar a construção de um currículo na plataforma Lattes do CNPq, para auxiliar a percepção sobre quão importante é construir uma carreira de sucesso desde o primeiro ano na universidade. FACULDADE DE ENGENHARIA DA COMPUTAÇÃO End: Av. Augusto Correa, 01. Campus Universitário do Guamá. Instituto de Tecnologia – ITEC Telefone: (91) 3201-7901. E-mail: engcomp @ufpa.br , website: http//www.engcomp.ufpa.br

Roteiro - Compilando Programas no Linux

Embed Size (px)

DESCRIPTION

Roteiro de como compilar programas no Linux.

Citation preview

  • UNIVERSIDADE FEDERAL DO PARINSTITUTO DE TECNOLOGIA

    FACULDADE DE ENGENHARIA DA COMPUTAO

    Disciplina: Projetos de Engenharia IProjeto 4 - Ferramentas GNU para Desenvolvimento de Software Relativamente Complexo

    I) Objetivos:1) Familiarizar o aluno com as ferramentas GNU para desenvolvimento de

    software

    2) Utilizar um software para controle de verses, mais especificamente o SVN

    3) Usar as ferramentas GNU gcc, configure e make, e aprender a escrever

    Makefiles. Manipular as opes do configure ao instalar um programa.

    4) Usar o find, pipe |, xargs, cat e grep para encontrar palavras-chave em

    arquivos abaixo de um dado diretrio raiz, fazendo recorrncia nos

    subdiretrios.

    5) Ter uma ideia das ferramentas da coleo GNU Binutils, em especial o ld

    (linker), as (assembler), gprof, nm e strings.

    6) Ter idia das diretivas de compilao para o pr-processador (#define,

    #ifndef, etc.), do processo de apenas compilar sem linkar com "gcc -c" e de

    linkar com ld ou gcc.

    7) Compilar softwares relativamente sofisticados, para entender as

    complicaes inerentes de se achar as bibliotecas necessrias, configurar o

    compilador, estudar as mensagens de erro, usar o google para achar casos de

    erro semelhantes, comunicar-se atravs das listas de discusso, etc.

    8) Iniciar a construo de um currculo na plataforma Lattes do CNPq, para

    auxiliar a percepo sobre quo importante construir uma carreira de sucesso

    desde o primeiro ano na universidade.

    FACULDADE DE ENGENHARIA DA COMPUTAOEnd: Av. Augusto Correa, 01. Campus Universitrio do Guam. Instituto de Tecnologia ITEC

    Telefone: (91) 3201-7901. E-mail: engcomp @ufpa.br , website: http//www.engcomp.ufpa.br

  • II) Roteiro do trabalho:So 4 tarefas. Faa o upload no Moodle de um unico zip com ambos cdigos,

    das tarefas 3 e 4 abaixo.

    Tarefa 1 - bem fcil) Usando a plataforma Latttes - http://lattes.cnpq.br/ -

    cadastrar o seu currculo. Para terem ideia de como fica um currculo na

    academia de um pesquisador de renome, visualizar em

    http://lattes.cnpq.br/0261838076132788 o do prof. Antonio Jos Simes Costa,

    paraense, formado pela UFPA e atualmente professor da UFSC. Notem que

    obtive o URL acima olhando no "Endereo para acessar este CV:" mostrado no

    Lattes do prof. Simes. Ser esse endereo que iro fornecer aps terem seus

    currculos cadastrados. Para terem ideia de como alunos no inicio da carreira

    se cadastram no Lattes, vide os currculos de colegas que esto no LaPS, em

    http://www.laps.ufpa.br/index.php?option=com_member&view=member&Itemid=33, principalmente

    dos mais novos.

    Tarefa 2 - fcil) Usando o servidor SVN da Engcomp -

    https://www.engcomp.ufpa.br/websvn/, procurar o diretrio com o arquivo

    calouros_2011_1osem.c e edit-lo colocando o seu nome, matricula, mantra

    pessoal e informando o URL do seu Lattes. O arquivo inicial segue abaixo e

    ser atualizado por cada um.#include

    int main() {

    puts("Esse programa \"apresenta\" a turma de 2011, 1o semestre");

    puts("Matricula - Nome - Curriculo Lattes");

    puts("A partir daqui cada um insere suas linhas, guardando uma linha em branco:\n");

    puts("0800494001 - Fulano de tal - http://lattes.cnpq.br/026183807613242428");

    puts("Meu mantra: A vida luta renhida que aos fracos abate e aos fortes s faz exaltar.\n");

    puts("0800400141 - Sicrano de tal - http://lattes.cnpq.br/02618380761424788");

    puts("Meu mantra: No pain, no gain.\n");

    puts("08045440141 - Macunaima - http://lattes.cnpq.br/02618380763222788");

    puts("Meu mantra: Pouca sade e muita sava, os males do Brasil so!\n");

    }

    FACULDADE DE ENGENHARIA DA COMPUTAOEnd: Av. Augusto Correa, 01. Campus Universitrio do Guam. Instituto de Tecnologia ITEC

    Telefone: (91) 3201-7901. E-mail: engcomp @ufpa.br , website: http//www.engcomp.ufpa.br

  • Tarefa 3 - dificuldade mdia/alta) Responder o questionrio com 20 perguntas.

    As respostas devem ir em um nico arquivo texto ASCII, cujo nome deve ser a

    matrcula do aluno, seguido por "_projeto4.txt", por exemplo,

    080033401_projeto4.txt. Esse arquivo deve ser "uploaded" no Moodle.

    Tarefa 4 - difcil) Compile o cdigo fonte de um dentre 3 programas

    profissionais: Audacity, Octave ou Supertux. Antes faa uma pequena alterao

    que insira o seu nome em alguma parte visvel do programa executvel. Gere

    um arquivo de relatrio no formato MS DOC descrevendo os passos que fez e

    mostrando (como figura, dentro do DOC) um screenshot do programa

    modificado mostrando seu nome (pode ser no "about" ou em um menu, por

    exemplo). O ideal primeiro voc instalar os softwares, ver como funcionam e

    depois tentar compila-los. Sobre os softwares:

    a) O Audacity (http://audacity.sourceforge.net/download/beta_source) o editor

    de som FOSS mais usado no mundo

    b) O Supertux (http://supertux.lethargik.org/wiki/Download/Subversion) um

    jogo e depois voc pode criar cenrios ou mesmo personagens, mas isso foge

    do escopo desse trabalho, que se restringe a compilar

    c) O Octave (http://wiki.octave.org/) um substituto do Matlab muito poderoso.

    H vrias informaes na Web, como em:

    http://sunsite.univie.ac.at/textbooks/octave/octave_33.html

    Escolha apenas um deles.

    Voc pode compilar para Windows ou para Linux (Mac no vale pois no

    teremos como testar). Por exemplo, o Supertux pode ser compilado para

    Windows de acordo com http://supertux.lethargik.org/wiki/Building_on_Windows

    e os outros dois tambm.

    III) Comandos teis:a) Por default, o nome do arquivo usado pelo make Makefile, mas um outro

    arquivo pode ser invocado com a opo -f

    make -t -f meuMakefile.txt

    b) A opo -t faz um "touch" nos "alvos", atualizando suas datas / horas.

    make -t -f meuMakefile.txt

    FACULDADE DE ENGENHARIA DA COMPUTAOEnd: Av. Augusto Correa, 01. Campus Universitrio do Guam. Instituto de Tecnologia ITEC

    Telefone: (91) 3201-7901. E-mail: engcomp @ufpa.br , website: http//www.engcomp.ufpa.br

    UNIVERSIDADE FEDERAL DO PARI) Objetivos:II) Roteiro do trabalho:III) Comandos teis: