[minixbr] Biblioteca

  • From: Marcelo Gonçalves <marcelo@xxxxxxxxxxxxxxxxxxxxxxxx>
  • To: <minixbr@xxxxxxxxxxxxx>
  • Date: Thu, 5 Feb 2004 17:53:43 -0300

Olá, galera!

Essa lista deu uma parada de dezembro pra cá, o q houve?

Estou com algumas funçõezinhas implementadas e gostaria de gerar a partir
delas uma biblioteca que fizesse parte do Minix, que um programador pudesse
usá-la em seus programas.

As perguntas: como compilar essas funções para que o resultado seja uma
biblioteca? Como usar as funções dessa biblioteca num programa qualquer q eu
(ou qlq outro) venha a fazer no Minix?

Valeu!

[ ]s

Marcelo

--
Para se descadastrar, mande um e-mail para:
minixbr-request@xxxxxxxxxxxxx
com ''unsubscribe'' no campo ''Assunto''.
From " lcapitulino"@terra.com.br  Fri Feb  6 06:12:24 2004
Received: with ECARTIS (v1.0.0; list minixbr); Fri, 06 Feb 2004 06:12:28 -0500 
(EST)
Return-Path: <" lcapitulino"@terra.com.br>
X-Original-To: minixbr@xxxxxxxxxxxxx
Delivered-To: minixbr@xxxxxxxxxxxxx
Received: from fwappy.com (unknown [12.47.46.151])
        by turing.freelists.org (Avenir Technologies Mail Multiplex) with SMTP 
id 58987394BBC
        for <minixbr@xxxxxxxxxxxxx>; Fri,  6 Feb 2004 06:12:23 -0500 (EST)
Received: (qmail 15012 invoked by uid 99); 6 Feb 2004 11:36:34 -0000
Date: 6 Feb 2004 11:36:34 -0000
Message-ID: <20040206113634.15011.qmail@xxxxxxxxxx>
To: minixbr@xxxxxxxxxxxxx
Subject: [minixbr] Re: Biblioteca
Received: from 200.230.190.123 (auth. user lcapitulino@xxxxxxxxxxxxxxxxxxxx)
          by demo.ilohamail.org with HTTP; Fri, 06 Feb 2004 11:36:34 +0000
X-IlohaMail-Blah: lcapitulino@xxxxxxxxxxxxxxxxxxxx
X-IlohaMail-Method: mail() [mem]
X-IlohaMail-Dummy: moo
X-Mailer: IlohaMail/0.8.11 (On: demo.ilohamail.org)
In-Reply-To: <004b01c3ec2a$2454e1b0$3d0aa8c0@xxxxxxxxxx>
From: "Luiz Capitulino" <lcapitulino@xxxxxxxxxxxx>
Bounce-To: "Luiz Capitulino" <lcapitulino@xxxxxxxxxxxx>
MIME-Version: 1.0
Content-type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-archive-position: 69
X-ecartis-version: Ecartis v1.0.0
Sender: minixbr-bounce@xxxxxxxxxxxxx
Errors-to: minixbr-bounce@xxxxxxxxxxxxx
X-original-sender: lcapitulino@xxxxxxxxxxxx
Precedence: normal
Reply-to: minixbr@xxxxxxxxxxxxx
X-list: minixbr


Ol=E1 Marcelo,

On 2/5/2004, "Marcelo Gon=E7alves" <marcelo@xxxxxxxxxxxxxxxxxxxxxxxx>
wrote:

>Essa lista deu uma parada de dezembro pra c=E1, o q houve?

 Acho que o pessoal ainda est=E1 em r=EDtmo de f=E9rias. :)

>Estou com algumas fun=E7=F5ezinhas implementadas e gostaria de gerar a parti=
r
>delas uma biblioteca que fizesse parte do Minix, que um programador pudesse
>us=E1-la em seus programas.

 Muito bom, estou curioso para saber o que =E9.

>As perguntas: como compilar essas fun=E7=F5es para que o resultado seja uma
>biblioteca?

 Basta gerar um arquivo objeto:

$ cc -c minhalib.c

 esse comando vai gerar o arquivo minhalib.o. Digamos que em minhalib.c
voc=EA tenha uma fun=E7=E3o cujo o prot=F3tipo =E9:

void alguma_coisa(void);

 Para us=E1-la em um programa, digamos teste.c, basta fazer:

#include <minhalib.h> /* deve ter o prot=F3tipo */

int main(void)
{
 ....

 alguma_coisa();

 ...
}

 Algora voc=EA compila assim:

$ cc -c teste.c
$ cc -o teste teste.o minhalib.o

 Entendeu ?

>Como usar as fun=E7=F5es dessa biblioteca num programa qualquer q eu
>(ou qlq outro) venha a fazer no Minix?

 Como eu expliquei acima, mas tem um detalhe. Se forem v=E1rias fun=E7=F5es,
=E9 melhor criar um arquivo objeto por fun=E7=E3o; isso signifca que no final
voc=EA vai ter v=E1rios arquivos ".o".

 Existe uma maneira de agrupar esses arquivo em um s=F3. =C9 criar um
arquivamento com o programa ar, isso vai gerar um arquivo .a, digamos
minhalib.a. Para criar esse arquivamento, =E9 algo assim:

$ ar c minhalib.a <arquivos objetos>

 n=E3o tenho certeza da linha de comando, pois estou em uma m=E1quina
Linux, e o ar do Minix =E9 diferente do ar do GNU, embora gerem o
mesmo resultado.

 O conte=FAdo de minhalib.a vai ser todos os arquivo objeto que voc=EA
especificar na cria=E7=E3o, e para usar minhalib.a voc=EA vai ter que
especificar algumas op=E7=F5es para o compilador. As quais eu tamb=E9m
n=E3o lembro, embora acredite que sejam as mesmas do GCC.

 Mas talvez o melhor seja voc=EA criar diret=F3rio (ou usar um existente)
em /usr/src/lib/. Crie um Makefile para ele e uma entrada no Makefile
principal. Dessa maneira sua biblioteca vai ser instalada da maneira
padr=E3o.

 Se voc=EA tiver problemas com as linhas de comando ou algum outro detalhe,
pergunte novamente... A noite vou estar em casa e posso dar um exemplo
mais completo.

Abra=E7os,

--- Luiz Fernando N. Capitulino
--
Para se descadastrar, mande um e-mail para:
minixbr-request@xxxxxxxxxxxxx
com ''unsubscribe'' no campo ''Assunto''.
From " lcapitulino"@terra.com.br  Fri Feb  6 06:24:00 2004
Received: with ECARTIS (v1.0.0; list minixbr); Fri, 06 Feb 2004 06:24:03 -0500 
(EST)
Return-Path: <" lcapitulino"@terra.com.br>
X-Original-To: minixbr@xxxxxxxxxxxxx
Delivered-To: minixbr@xxxxxxxxxxxxx
Received: from fwappy.com (unknown [12.47.46.151])
        by turing.freelists.org (Avenir Technologies Mail Multiplex) with SMTP 
id 560A3394CF2
        for <minixbr@xxxxxxxxxxxxx>; Fri,  6 Feb 2004 06:24:00 -0500 (EST)
Received: (qmail 15122 invoked by uid 99); 6 Feb 2004 11:48:22 -0000
Date: 6 Feb 2004 11:48:22 -0000
Message-ID: <20040206114822.15121.qmail@xxxxxxxxxx>
To: minixbr@xxxxxxxxxxxxx
Subject: [minixbr] Re: Biblioteca
Received: from 200.230.190.123 (auth. user lcapitulino@xxxxxxxxxxxxxxxxxxxx)
          by demo.ilohamail.org with HTTP; Fri, 06 Feb 2004 11:48:22 +0000
X-IlohaMail-Blah: lcapitulino@xxxxxxxxxxxxxxxxxxxx
X-IlohaMail-Method: mail() [mem]
X-IlohaMail-Dummy: moo
X-Mailer: IlohaMail/0.8.11 (On: demo.ilohamail.org)
In-Reply-To: <20040206113634.15011.qmail@xxxxxxxxxx>
From: "Luiz Capitulino" <lcapitulino@xxxxxxxxxxxx>
Bounce-To: "Luiz Capitulino" <lcapitulino@xxxxxxxxxxxx>
MIME-Version: 1.0
Content-type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-archive-position: 70
X-ecartis-version: Ecartis v1.0.0
Sender: minixbr-bounce@xxxxxxxxxxxxx
Errors-to: minixbr-bounce@xxxxxxxxxxxxx
X-original-sender: lcapitulino@xxxxxxxxxxxx
Precedence: normal
Reply-to: minixbr@xxxxxxxxxxxxx
X-list: minixbr


Ah... versao sem acentos:

Ola Marcelo,

On 2/5/2004, "Marcelo Goncalves" <marcelo@xxxxxxxxxxxxxxxxxxxxxxxx>
wrote:

>Essa lista deu uma parada de dezembro pra ca, o q houve?

 Acho que o pessoal ainda esta em ritmo de ferias. :)

>Estou com algumas funcoezinhas implementadas e gostaria de gerar a partir
>delas uma biblioteca que fizesse parte do Minix, que um programador pudesse
>usa-la em seus programas.

 Muito bom, estou curioso para saber o que eh.

>As perguntas: como compilar essas funcoes para que o resultado seja uma
>biblioteca?

 Basta gerar um arquivo objeto:

$ cc -c minhalib.c

 esse comando vai gerar o arquivo minhalib.o. Digamos que em minhalib.c
voce tenha uma funcao cujo o prototipo e':

void alguma_coisa(void);

 Para usa'-la em um programa, digamos teste.c, basta fazer:

#include <minhalib.h> /* deve ter o prototipo */

int main(void)
{
 ....

 alguma_coisa();

 ...
}

 Algora voce compila assim:

$ cc -c teste.c
$ cc -o teste teste.o minhalib.o

 Entendeu ?

>Como usar as funcoes dessa biblioteca num programa qualquer q eu
>(ou qlq outro) venha a fazer no Minix?

 Como eu expliquei acima, mas tem um detalhe. Se forem varias funcoes,
e' melhor criar um arquivo objeto por funcao; isso signifca que no final
voce vai ter varios arquivos ".o".

 Existe uma maneira de agrupar esses arquivo em um so. E' criar um
arquivamento com o programa ar, isso vai gerar um arquivo .a, digamos
minhalib.a. Para criar esse arquivamento, e' algo assim:

$ ar c minhalib.a <arquivos objetos>

 nao tenho certeza da linha de comando, pois estou em uma maquina
Linux, e o ar do Minix =3DE9 diferente do ar do GNU, embora gerem o
mesmo resultado.

 O conteudo de minhalib.a vai ser todos os arquivo objeto que voce
especificar na criacao, e para usar minhalib.a voce vai ter que
especificar algumas opcoes para o compilador. As quais eu tambem
nao lembro, embora acredite que sejam as mesmas do GCC.

 Mas talvez o melhor seja voce criar diretorio (ou usar um existente)
em /usr/src/lib/. Crie um Makefile para ele e uma entrada no Makefile
principal. Dessa maneira sua biblioteca vai ser instalada da maneira
padrao.

 Se voce tiver problemas com as linhas de comando ou algum outro detalhe,
pergunte novamente... A noite vou estar em casa e posso dar um exemplo
mais completo.

Abracos,

-- Capitulino
--
Para se descadastrar, mande um e-mail para:
minixbr-request@xxxxxxxxxxxxx
com ''unsubscribe'' no campo ''Assunto''.

Other related posts: