Por que qdo eu uso, por exemplo, #include <net/gen/tcp.h> #include <net/gen/tcp_io.h> eu nao preciso especificar nada na linha de comando do 'cc' para que ele use as bibliotecas onde estao as respectivas funcoes? Eh como se essas bibliotecas fossem padrao ou estivessem no PATH, ou o compilador simplesmente sabe quais sao elas por default? Para matar sua curiosidade, to fazendo aquelas funcoes de sockets, pra facilitar a vida da galera (socket, bind, listen, accept, connect, send, recv, close). Elas vao me ajudar no meu TCC, que eh uma implementacao do DCE RPC no Minix. Ateh junho tem q estar 70% pronto. Nao sei exatamente o que vai ser esse 70%, pq quem define esse escopo eh o orientador, mas creio que pelo menos a parte de comunicação esteja ok. Não sei se vai dar tempo de fazer o gerador de UUID e o compilador de IDL. Vamos ver.... Valeu as dicas, vou brincar com isso de noite :-) Marcelo ----- Original Message ----- From: "Luiz Capitulino" <lcapitulino@xxxxxxxxxxxx> To: <minixbr@xxxxxxxxxxxxx> Sent: Friday, February 06, 2004 8:48 AM Subject: [minixbr] Re: Biblioteca 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''. -- Para se descadastrar, mande um e-mail para: minixbr-request@xxxxxxxxxxxxx com ''unsubscribe'' no campo ''Assunto''. From " lcapitulino"@terra.com.br Fri Feb 6 07:10:37 2004 Received: with ECARTIS (v1.0.0; list minixbr); Fri, 06 Feb 2004 07:10:40 -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 4DADD394CF8 for <minixbr@xxxxxxxxxxxxx>; Fri, 6 Feb 2004 07:10:37 -0500 (EST) Received: (qmail 16114 invoked by uid 99); 6 Feb 2004 12:34:59 -0000 Date: 6 Feb 2004 12:34:59 -0000 Message-ID: <20040206123459.16113.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 12:34:59 +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: <006101c3eca7$5cc7fe10$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: 72 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 Marcelo, On 2/6/2004, "Marcelo Gon=E7alves" <marcelo@xxxxxxxxxxxxxxxxxxxxxxxx> wrote: >Por que qdo eu uso, por exemplo, > >#include <net/gen/tcp.h> >#include <net/gen/tcp_io.h> > >eu nao preciso especificar nada na linha de comando do 'cc' para que ele use >as bibliotecas onde estao as respectivas funcoes? Voce esta confundindo arquivo de cabecalho com biblioteca de funcao. Arquivo de cabecalho *nao* e' biblioteca. Nos arquivos de cabecalho, voce vai colocar prototipos de funcao e definicoes globais. Na biblioteca vai ter o codigo. Voce nao precisa especificar nada na linha de comando pois: >Eh como se essas bibliotecas fossem padrao ou estivessem no PATH, ou o >compilador simplesmente sabe quais sao elas por default? Elas estao no PATH do compilador, voce pode colocar as suas la tambem. Mas repito: nao confunda arquivos de cabecalho com biblioteca. No exemplo que dei anteriormente, voce poderia colocar o arquivo de cabecalho "minhalib.h" em /usr/include/marcelo", assim voce incluiria em seu programa assim: #include <macelo/minhalib.h> Nao estou certo do lugar correto de minhalib.a, tenho que olhar em um Minix para lembrar. >Para matar sua curiosidade, to fazendo aquelas funcoes de sockets, pra >facilitar a vida da galera (socket, bind, listen, accept, connect, send, >recv, close). Elas vao me ajudar no meu TCC, que eh uma implementacao do DCE >RPC no Minix. Ateh junho tem q estar 70% pronto. Nao sei exatamente o que >vai ser esse 70%, pq quem define esse escopo eh o orientador, mas creio que >pelo menos a parte de comunica=E7=E3o esteja ok. N=E3o sei se vai dar tempo = de >fazer o gerador de UUID e o compilador de IDL. Vamos ver.... Otimo, maravilhoso... Ja me coloco a disposicao para ajudar nos testes, mas isso vai depender de um fator muito imporante: qual licenca voce vai usar ? -- Capitulino -- Para se descadastrar, mande um e-mail para: minixbr-request@xxxxxxxxxxxxx com ''unsubscribe'' no campo ''Assunto''.