Tutorial Programando C no Linux

269 visualizações

Publicada em

Tutorial para programar C no linux em linha de comando utilizando o GCC.

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
269
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
6
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Tutorial Programando C no Linux

  1. 1. Tutorial: Programando C no Linux Alunos: Henrique Neto e João Gonçalves E-mails: henrique.brandao@larces.uece.br ; joao.goncalves@larces.uece.br
  2. 2. Esse Tutorial tem como objetivo mostrar como realizar a compilação de um programa em C via linha de comando no Ubuntu e além disso, mostrar como pode ser feita a sua própria biblioteca. Quando realizamos esses procedimentos via linha de comando, podemos acompanhar como as coisas funcionam por baixo, sendo assim, interessante se familiarizar com os comandos no Console. Para começar, vamos abrir o console. No Ubuntu ele pode ser aberto pressionando Alt+F2 e dentro da caixa dando o comando gnome-terminal. Na Figura abaixo pode ser visto o console, ele é semelhante ao prompt-comando do windows. Essa é a linha de comando que será utilizada para programar. Precisamos saber alguns comandos básicos para utilizar o console, um deles é o ls. Ele irá listar todos os arquivos e pastas do diretório atual em que você está. Assim que você abre o console, ele é iniciado na pasta home. Digitando ls e depois enter, a saída será semelhate a essa: Agora iremos criar uma pasta onde será colocado os códigos do seu programa. O comando para criar pastas é o mkdir. Digitando então mkdir nome_da_pasta e dando um novo ls, aparecerá a nova pasta criada: Outro comando importante é o cd, que permite acessar diretórios. Agora entre na pasta codes que acabou de ser criada, utilizando o comcando cd conforme a figura abaixo.
  3. 3. Pode ser percebido que agora o diretório atual é codes. Compilando um Hello World Para a escrita do programa, pode ser utilizado alguns editores de texto. Como exemplo, tem- se o gedit, que é semelhante ao bloco de notas do windows. Para abrir, execute Alt+F2, depois digite gedit. Então escreva o clássico hello world. Salve o arquivo na pasta codes e volte ao console para fazer a compilação. O compilador que será utilizado é o gcc que já vem pré-instalado no Ubuntu. A seguinte linha abaixo compila um programa básico em C: gcc -o nome_do_executável nome_do_arquivo.c O nome_do_executável é o nome do arquivo do programa que é gerado após a compilação. Para executar o programa, simplesmente faça “./nome_do_executável”, conforme mostra a Figura abaixo:
  4. 4. A flag -o indica que todos os códigos serão linkados e assim gerado diretamente o executável especificado. Mas quando queremos criar uma biblioteca, será preciso o código objeto, e em C a extensão é arquivo.o. Ele é basicamente o código já compilado, mas que ainda não foi linkado com as demais bibliotecas que são necessárias para execução do programa. Para entender apague o executável gerado hello utilizando o comando rm, e em seguida compile o programa utilizando a flag -c, dessa forma será gerado o main.o conforme a Figura abaixo: O último comando com o gcc listado, apenas fez a linkagem da main.o para gerar o programa final, uma vez que ele já esta compilado. Criando Uma Biblioteca Vamos criar uma biblioteca básica, em que a funções que serão criadas serão soma e subtração. Ela ficará em um arquivo externo que chamaremos libcalc.c. Será necessário antes criar o arquivo de cabeçalho que é o libcalc.h, onde irão ficar as definições das funções da sua biblioteca. Ele é importante pois, no arquivo da main.c, será dado o include da libcalc.h, de maneira semelhante as das bibliotecas padrões do C, como a stdlib.h. Então abra o gedit e escreva o arquivo libcalc.h conforme a Figura abaixo e salve na pasta codes.
  5. 5. Nele contém as especificações (assinaturas) das funções da biblioteca que são implementadas no arquivo libcalc.c, conforme mostrado na Figura abaixo: Note que foi necessário incluir o arquivo “libcalc.h” com as especificações das funções. Agora vamos reescrever a main para utilizar as funções implementadas.
  6. 6. Para fazer a linkagem, primeiramente, utilizamos a flag -c na qual compilará tanto a main como a libcalc, assim gerando os arquivos main.o e libcalc.o. Depois disso, devemos fazer a linkagem de todos os arquivos .o para gerar nosso programa final, conforme mostrado na Figura abaixo. Criação de Bibliotecas Dinâmicas Bibliotecas dinâmicas permitem a utilização de funcionalidades ou procedimentos externos ao seu programa. A ideia é que bibliotecas assim fiquem instadas no computador sem ter a necessidade de incluí-las nos diretórios do programa que você está implementando. Em sistemas operacionais como o Linux, bibliotecas dinâmicas seguem o seguinte padrão de nomenclatura: lib<nome_biblioteca>.so.<versão>. O <nome_biblioteca> é passado para o compilador gcc na hora da linkagem com o seu programa. A <versão> indica o número da versão da sua biblioteca, podendo ser opcional. E so significa shared object. Essas bibliotecas devem estar em diretórios do sistema como /lib ou /usr/lib, além disso o arquivo .h deve ser copiado para a pasta /usr/include.
  7. 7. Para tornar a biblioteca libcalc, implementada nos tópicos anteriores, em uma biblioteca dinâmica, é necessário os seguintes passos: - Alterar a forma de compilação dos arquivos libcalc.c e libcalc.h utilizando o gcc. Para isso, utiliza-se os parâmetros -shared, -fPIC e -o. A linha de compilação é mostrada na figura abaixo. - Copiar o arquivo compilado libcalc.so para o diretório /usr/lib. Para realizar essa cópia, você utiliza o comando cp. Nele você especifica o arquivo que quer copiar e o diretório destino. Também é necessário ter privilégios de super-usuário (root), assim tem que se usar o comando sudo, e informar sua senha de usuário quando for pedido. A Figura abaixo ilustra esses passos. - Copiar o arquivo libcalc.h para a pasta /usr/include, também utilizando o comando sudo. A Figura abaixo ilustra esses passos. Feito os procedimentos acima, agora pode-se utilizar a biblioteca em seu programa. Mas antes, no arquivo main.c troque #include “libcalc.h” por #include <libcalc.h>. As aspas indicam que o arquivo libcalc.h esta no diretório atual. Utilizando <>, está sendo indicado que libcalc.h esta no diretório do sistema, então não é necessário passar um caminho para ele. A linha de comando mostrada na Figura abaixo mostra como compilá-lo linkando-se tal biblioteca (como o arquivo main foi alterado deve-se novamente fazer sua compilação). Como pode ser visto, para compilar é necessário passar a flag -l, juntamente com o nome da lib. Dessa forma, você pode criar sua própria lib e apenas disponibilizar o arquivo .so e o arquivo .h. Assim outras pessoas poderão usar a sua lib, mesmo não tendo o código fonte .c.

×