SlideShare une entreprise Scribd logo
1  sur  7
Télécharger pour lire hors ligne
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
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.
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:
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.
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.
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.
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.

Contenu connexe

Tendances

Visual basic 2010 express MP3 player
Visual basic 2010 express MP3 playerVisual basic 2010 express MP3 player
Visual basic 2010 express MP3 playerokashi24
 
Alterar password linux user pam autentication
Alterar password linux user   pam autenticationAlterar password linux user   pam autentication
Alterar password linux user pam autenticationCarlos Eduardo
 
Curso Básico/Intermediário Linux - Colmeia 2008 - Emacs
Curso Básico/Intermediário Linux -  Colmeia 2008 - EmacsCurso Básico/Intermediário Linux -  Colmeia 2008 - Emacs
Curso Básico/Intermediário Linux - Colmeia 2008 - EmacsMarco Carvalho de Oliveira
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scriptingdcarneir
 
Apostila php
Apostila phpApostila php
Apostila phpfelgamer
 
12 aula - shell script-2015
12   aula - shell script-201512   aula - shell script-2015
12 aula - shell script-2015Flávia Santos
 
Introdução ao CMake
Introdução ao CMakeIntrodução ao CMake
Introdução ao CMakePaulo Remoli
 
Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8
Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8
Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8Natan Moraes
 
Tutorial para criação de módulo no Xoops 2.4
Tutorial para criação de módulo no Xoops 2.4Tutorial para criação de módulo no Xoops 2.4
Tutorial para criação de módulo no Xoops 2.4Fabio Telles Rodriguez
 
Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)Cristiano Rafael Steffens
 
O Que é Shell (bash)
O Que é Shell (bash)O Que é Shell (bash)
O Que é Shell (bash)Sérgio Silva
 
Introdução ao Shell Script (versão estendida)
Introdução ao Shell Script (versão estendida)Introdução ao Shell Script (versão estendida)
Introdução ao Shell Script (versão estendida)Hugo Maia Vieira
 

Tendances (16)

Visual basic 2010 express MP3 player
Visual basic 2010 express MP3 playerVisual basic 2010 express MP3 player
Visual basic 2010 express MP3 player
 
Alterar password linux user pam autentication
Alterar password linux user   pam autenticationAlterar password linux user   pam autentication
Alterar password linux user pam autentication
 
Curso Básico/Intermediário Linux - Colmeia 2008 - Emacs
Curso Básico/Intermediário Linux -  Colmeia 2008 - EmacsCurso Básico/Intermediário Linux -  Colmeia 2008 - Emacs
Curso Básico/Intermediário Linux - Colmeia 2008 - Emacs
 
Curso Gratuito de Shell Script
Curso Gratuito de Shell ScriptCurso Gratuito de Shell Script
Curso Gratuito de Shell Script
 
Shell script
Shell scriptShell script
Shell script
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scripting
 
Apostila php
Apostila phpApostila php
Apostila php
 
12 aula - shell script-2015
12   aula - shell script-201512   aula - shell script-2015
12 aula - shell script-2015
 
Tutorial javac
Tutorial javacTutorial javac
Tutorial javac
 
Introdução ao CMake
Introdução ao CMakeIntrodução ao CMake
Introdução ao CMake
 
Tutorial Shell Script
Tutorial Shell ScriptTutorial Shell Script
Tutorial Shell Script
 
Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8
Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8
Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8
 
Tutorial para criação de módulo no Xoops 2.4
Tutorial para criação de módulo no Xoops 2.4Tutorial para criação de módulo no Xoops 2.4
Tutorial para criação de módulo no Xoops 2.4
 
Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)
 
O Que é Shell (bash)
O Que é Shell (bash)O Que é Shell (bash)
O Que é Shell (bash)
 
Introdução ao Shell Script (versão estendida)
Introdução ao Shell Script (versão estendida)Introdução ao Shell Script (versão estendida)
Introdução ao Shell Script (versão estendida)
 

En vedette

Sincronização e Memória compartilhada distribuída
Sincronização e Memória compartilhada distribuídaSincronização e Memória compartilhada distribuída
Sincronização e Memória compartilhada distribuídaJoao Gonçalves
 
Problema do Caixeiro-Viajante com Restrições de Tempo
Problema do Caixeiro-Viajante com Restrições de TempoProblema do Caixeiro-Viajante com Restrições de Tempo
Problema do Caixeiro-Viajante com Restrições de TempoJoao Gonçalves
 
Estudo Sobre Mobile Ad Hoc Networks(MANETs)
Estudo Sobre Mobile Ad Hoc Networks(MANETs)Estudo Sobre Mobile Ad Hoc Networks(MANETs)
Estudo Sobre Mobile Ad Hoc Networks(MANETs)Joao Gonçalves
 
OSPF - Open Shortest Path First
OSPF - Open Shortest Path FirstOSPF - Open Shortest Path First
OSPF - Open Shortest Path FirstJoao Gonçalves
 
METAHEURÍSTICA GRASP APLICADA AO PROBLEMA DO SEQUENCIAMENTO DE TAREFAS
METAHEURÍSTICA GRASP APLICADA AO PROBLEMA DO SEQUENCIAMENTO DE TAREFASMETAHEURÍSTICA GRASP APLICADA AO PROBLEMA DO SEQUENCIAMENTO DE TAREFAS
METAHEURÍSTICA GRASP APLICADA AO PROBLEMA DO SEQUENCIAMENTO DE TAREFASJoao Gonçalves
 

En vedette (6)

Conversão Entre Bases
Conversão Entre BasesConversão Entre Bases
Conversão Entre Bases
 
Sincronização e Memória compartilhada distribuída
Sincronização e Memória compartilhada distribuídaSincronização e Memória compartilhada distribuída
Sincronização e Memória compartilhada distribuída
 
Problema do Caixeiro-Viajante com Restrições de Tempo
Problema do Caixeiro-Viajante com Restrições de TempoProblema do Caixeiro-Viajante com Restrições de Tempo
Problema do Caixeiro-Viajante com Restrições de Tempo
 
Estudo Sobre Mobile Ad Hoc Networks(MANETs)
Estudo Sobre Mobile Ad Hoc Networks(MANETs)Estudo Sobre Mobile Ad Hoc Networks(MANETs)
Estudo Sobre Mobile Ad Hoc Networks(MANETs)
 
OSPF - Open Shortest Path First
OSPF - Open Shortest Path FirstOSPF - Open Shortest Path First
OSPF - Open Shortest Path First
 
METAHEURÍSTICA GRASP APLICADA AO PROBLEMA DO SEQUENCIAMENTO DE TAREFAS
METAHEURÍSTICA GRASP APLICADA AO PROBLEMA DO SEQUENCIAMENTO DE TAREFASMETAHEURÍSTICA GRASP APLICADA AO PROBLEMA DO SEQUENCIAMENTO DE TAREFAS
METAHEURÍSTICA GRASP APLICADA AO PROBLEMA DO SEQUENCIAMENTO DE TAREFAS
 

Similaire à Tutorial Programando C no Linux

Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação CJose Augusto Cintra
 
Apostila de Linguagem C
Apostila de Linguagem CApostila de Linguagem C
Apostila de Linguagem CDaniel Barão
 
Tutorial dev cpp 001 - criação, leitura e alteração de arquivos
Tutorial dev cpp   001 - criação, leitura e alteração de arquivosTutorial dev cpp   001 - criação, leitura e alteração de arquivos
Tutorial dev cpp 001 - criação, leitura e alteração de arquivosFlávio Freitas
 
Sistemas Operacionais - Gnu/Linux Instalando Programas
Sistemas Operacionais - Gnu/Linux Instalando ProgramasSistemas Operacionais - Gnu/Linux Instalando Programas
Sistemas Operacionais - Gnu/Linux Instalando ProgramasLuiz Arthur
 
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”Kratos879
 
Aula de C para Linux
Aula de C para LinuxAula de C para Linux
Aula de C para LinuxChris x-MS
 
Programação em Shell Script
Programação em Shell ScriptProgramação em Shell Script
Programação em Shell ScriptReinaldo Lima
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem corvel
 
Seis passos para colocar um projeto local em um servidor próprio
Seis passos para colocar um projeto local em um servidor próprioSeis passos para colocar um projeto local em um servidor próprio
Seis passos para colocar um projeto local em um servidor próprioMarcos Antônio de Souza Silva
 
CURSO DE PHP PARA INICIANTES - AULA 1
CURSO DE PHP PARA INICIANTES - AULA 1CURSO DE PHP PARA INICIANTES - AULA 1
CURSO DE PHP PARA INICIANTES - AULA 1Norivan Oliveira
 
Apostila - Desenvolvimento Web com ASP.NET
Apostila - Desenvolvimento Web com ASP.NETApostila - Desenvolvimento Web com ASP.NET
Apostila - Desenvolvimento Web com ASP.NETJosé Corrêa Viana
 

Similaire à Tutorial Programando C no Linux (20)

Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação C
 
Apostila de Linguagem C
Apostila de Linguagem CApostila de Linguagem C
Apostila de Linguagem C
 
Devc++
Devc++Devc++
Devc++
 
Tutorial dev cpp 001 - criação, leitura e alteração de arquivos
Tutorial dev cpp   001 - criação, leitura e alteração de arquivosTutorial dev cpp   001 - criação, leitura e alteração de arquivos
Tutorial dev cpp 001 - criação, leitura e alteração de arquivos
 
Sistemas Operacionais - Gnu/Linux Instalando Programas
Sistemas Operacionais - Gnu/Linux Instalando ProgramasSistemas Operacionais - Gnu/Linux Instalando Programas
Sistemas Operacionais - Gnu/Linux Instalando Programas
 
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
 
Apostila c++ básico
Apostila c++ básicoApostila c++ básico
Apostila c++ básico
 
Apostila c++ básico (1)
Apostila c++ básico (1)Apostila c++ básico (1)
Apostila c++ básico (1)
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
Aula de C para Linux
Aula de C para LinuxAula de C para Linux
Aula de C para Linux
 
Docker
DockerDocker
Docker
 
Apostila s7
Apostila s7Apostila s7
Apostila s7
 
Programação em Shell Script
Programação em Shell ScriptProgramação em Shell Script
Programação em Shell Script
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Seis passos para colocar um projeto local em um servidor próprio
Seis passos para colocar um projeto local em um servidor próprioSeis passos para colocar um projeto local em um servidor próprio
Seis passos para colocar um projeto local em um servidor próprio
 
Aulão de docker
Aulão de dockerAulão de docker
Aulão de docker
 
CURSO DE PHP PARA INICIANTES - AULA 1
CURSO DE PHP PARA INICIANTES - AULA 1CURSO DE PHP PARA INICIANTES - AULA 1
CURSO DE PHP PARA INICIANTES - AULA 1
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Gcc
Gcc Gcc
Gcc
 
Apostila - Desenvolvimento Web com ASP.NET
Apostila - Desenvolvimento Web com ASP.NETApostila - Desenvolvimento Web com ASP.NET
Apostila - Desenvolvimento Web com ASP.NET
 

Tutorial Programando C no Linux

  • 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. 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. 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. 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. 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. 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. 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.