[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

Tutorial MICO



Olá,

Só transcrevendo os comentários feitos em sala de aula.
As instruções referem-se ao uso do MICO no Linux, embora no
Windows talvez possa ser feito algo semelhante.

Para quem pode obter os pacotes do MICO via uma distribuição,
algumas partes podem ser desnecessárias.

Instalando via código-fonte:

1) Fazer download do mico em http://www.mico.org/
2) Descompactar o fonte para algum diretório conhecido.

Aqui fica a opção de instalar na árvore de diretório UNIX (a) ou
dentro do próprio diretório do fonte (b). Pra quem não tem uma distro
que forneça os pacotes, eu recomendaria (b).

3a) Configurar com ./configure
3b) Configurar com ./configure --prefix /path/completo/mico
(Importante! O caminho fornecido DEVE ser absoluto!)

4) Compilar com 'make'
5) Agora 'make install'

A essa altura os scripts necessários pra rodar o MICO já
devem ter sido criados, e localizam-se no subdiretório 'admin'
de onde foi descompactado o MICO. Em distribuições Linux
que fornecem o pacote, isso já deve estar no $PATH.

6) Digite: 'source /path/completo/mico/admin/mico-setup.sh'

Isso deve trazer para a sessão atual do shell as variáveis de
ambiente necessárias. Para tornar permanente, inclua, por exemplo,
no seu .bashrc.

Verifique se os comandos:

idl
mico-c++
mico-ld

Estão disponíveis para acesso agora. Se não estiverem, algo deu errado. :)

Importante: o comando 'idl' pode entrar em conflito com o homônimo do
JacORB. Renomeie um deles para, por exemplo, idl_jacorb'.

7) Gere o mapeamento do IDL a partir da definição fornecida com o enunciado:

idl VideoRental.idl

Devem ser gerados um VideoRental.cc e um VideoRental.h.
(Importante: o mapeamento deve ser gerado em cada máquina a ser
compilado o cliente)

8) Faça o programa-cliente, incluindo:

#include <coss/CosNaming.h>
Isso supondo que seja usado um serviço de nomes CORBA.

Possivelmente será necessário também:
using namespace VideoRentalStore;

9) Compile os programas, observando as seguintes flags:

IDL = idl
CXX = mico-c++
LD = mico-ld
CXXFLAGS = -I.
VERSION = 2.3.12
LDLIBS = -lmico$(VERSION)
COS_LDLIBS = -lmicocoss$(VERSION)

Compilando os arquivos C++:

$(CXX) $(CXXFLAGS) -c Arquivo.cc -o Arquivo.o

10) Linkando todo mundo:

$(LD) $(CXXFLAGS) $(LDLIBS) $(COS_LDLIBS) Arquivo1.o Arquivo2.o Arquivo_n.o
-o ClienteCompilado

11) Rodando o cliente:

./ClienteCompilado -ORBInitRef NameService=$IOR

Onde $IOR é o caminho para uma NSRef, algo do tipo:

IOR=file:///tmp/NSRef

Lembre-se que pra rodar o programa as variáveis de ambiente corretas devem
estar presentes, o que é obtido a partir do passo 6.

É isso. Até!

--
Rodolpho Iemini Atoji
www.linux.ime.usp.br/~ratoji