> Apuesto a que no has añadido StringIntMap.o a los objetos de tu ejecutable.

Bueno ..., yo no apuesto nada, nunca me gustaron los juegos de azar
...y más cuando sabes que vas a perder.


Efectivamente los objetos del ejecutable no los he tocado. Pero no sé
muy bien a qué te refieres, mi makefile va teniendo la siguiente
forma:

CXXFLAGS=-Igenerated

all: Server Server2 Client


Server: LDLIBS=-lIce -lFreeze
Server: Server.o generated/Hello.o
Server.o: Server.cc generated/Hello.h

Server2: LDLIBS=-lIce -lFreeze
Server2: Server2.o StringIntMap.o generated/Hello.o
Server2.o: Server2.cc generated/Hello.h

Client: LDLIBS=-lIce
Client: Client.o generated/Hello.o
Client.o: Client.cc generated/Hello.h


...
...
...

He probado a poner StringIntMap.o en diferentes posiciones del código
anterior pero me da fallo al hacer make.


Saludos.





On Nov 12, 2007 9:40 PM, FRANCISCO MOYA FERNANDEZ
<[EMAIL PROTECTED]> wrote:
>
>
>
> Apuesto a que no has añadido StringIntMap.o a los objetos de tu ejecutable.
>
>  Salud,
>  Paco
>
>  --
>  Francisco Moya Fernandez      Computer Architecture and Networks Group
>  Assistant Professor
>  [EMAIL PROTECTED]                      School of Computer Science
>  Fax:(+34 926) 29 53 54                University of Castilla-La Mancha
>  Tel:(+34 926) 29 54 83                      http://www.inf-cr.uclm.es/
>
>
>
>  -----Mensaje original-----
>  De: [EMAIL PROTECTED] en nombre de Manuel David Jiménez
> Patiño
>  Enviado el: lun 12/11/2007 21:27
>  Para: [email protected]
>  Asunto: [CRySoL] Freeze map
>
>
>
>  Hola a todos aquí sigo sufriendo con Ice.
>
>  Después de superar la etapa de IceGrid ahora tocaba utilizar freeze map.
>
>  Os cuento como he intentado solucionar mi problema original
>  intentándolo probar con un ejemplo sencillo:
>
>  En un server tenía:
>
>  struct Server: public Application {
>          int run(int argc, char* argv[]) {
>                  shutdownOnInterrupt();
>
>                  Freeze::ConnectionPtr connection =
>  Freeze::createConnection(communicator(), "db");
>  ...
>  ...
>  ...
>  ...
>
>  communicator()->waitForShutdown();
>                  return 0;
>          }
>  };
>
>
>  Y para poder utilizar freeze map utilizaba los siguientes pasos:
>
>  añadir en el makefile la siguiente línea:
>
>   LDLIBS= -lFreeze
>
>  Ahora en línea de comandos poner:
>
>  $ slice2freeze --dict StringIntMap,string,int StringIntMap
>
>       Se crea un contenedor denominado StringIntMap con un tipo de
>  clave string y un valor
>  int. El último argumento hace referencia al nombre de los archivos de
>  salida, que en este caso
>  son StringIntMap.h y StringIntMap.cpp.
>
>  Le doy a Intro y .... Bien! funciona.
>
>  Ahora añado estas líneas al archivo server.cpp:
>
>  #include <StringIntMap.h>
>  #include <Freeze/Freeze.h>
>
>
>  hago en línea de comandos:
>
>  $make
>
>  y bien funciona.
>
>
>  EL PROBLEMA VIENE CUANDO EN SERVER.CPP añado la siguiente línea:
>
>  struct Server: public Application {
>          int run(int argc, char* argv[]) {
>                  shutdownOnInterrupt();
>
>                  Freeze::ConnectionPtr connection =
>  Freeze::createConnection(communicator(), "db");
>                  StringIntMap map(connection, "simple"); <----- ESTA ES LA
> QUE
>  PROVOCA QUE MI PROGRAMA HAGA PUTUFF
>
>
>
>
>  Ahora en línea de comandos pongo:
>
>  $make
>
>  y me saca el siguiente jeroglífico:
>
>   In function `Freeze::Map<std::basic_string<char,
>  std::char_traits<char>, std::allocator<char> >, int,
>  StringIntMapKeyCodec, StringIntMapValueCodec,
>  Freeze::IceEncodingCompare>::Map(IceInternal::Handle<Freeze::Connection>
>  const&, std::basic_string<char, std::char_traits<char>,
>  std::allocator<char> > const&, bool, Freeze::IceEncodingCompare
>  const&)':
>
> Server2.cc:(.text._ZN6Freeze3MapISsi20StringIntMapKeyCodec22StringIntMapValueCodecNS_18IceEncodingCompareEEC1ERKN11IceInternal6HandleINS_10ConnectionEEERKSsbRKS3_[Freeze::Map<std::basic_string<char,
>  std::char_traits<char>, std::allocator<char> >, int,
>  StringIntMapKeyCodec, StringIntMapValueCodec,
>  Freeze::IceEncodingCompare>::Map(IceInternal::Handle<Freeze::Connection>
>  const&, std::basic_string<char, std::char_traits<char>,
>  std::allocator<char> > const&, bool, Freeze::IceEncodingCompare
>  const&)]+0xb3): undefined reference to
>  `StringIntMapValueCodec::typeId()'
>
> Server2.cc:(.text._ZN6Freeze3MapISsi20StringIntMapKeyCodec22StringIntMapValueCodecNS_18IceEncodingCompareEEC1ERKN11IceInternal6HandleINS_10ConnectionEEERKSsbRKS3_[Freeze::Map<std::basic_string<char,
>  std::char_traits<char>, std::allocator<char> >, int,
>  StringIntMapKeyCodec, StringIntMapValueCodec,
>  Freeze::IceEncodingCompare>::Map(IceInternal::Handle<Freeze::Connection>
>  const&, std::basic_string<char, std::char_traits<char>,
>  std::allocator<char> > const&, bool, Freeze::IceEncodingCompare
>  const&)]+0xd6): undefined reference to
>  `StringIntMapKeyCodec::typeId()'
>  collect2: ld devolvió el estado de salida 1
>  make: *** [Server2] Error 1
>
>
>
>
>  ... Después de ver lo anterior. ¿Alguien me puede ayudar?
>
>
>
>
>
>
>
>  Nota: también lo he probado así:
>
>  struct Server: public Application {
>          int run(int argc, char* argv[]) {
>                  shutdownOnInterrupt();
>
>
>
>                  ObjectAdapterPtr oa =
> communicator()->createObjectAdapter("Vendedor");
>                  ObjectPrx prx = oa->add(new
>  Vendedor(),communicator()->stringToIdentity("Vende"));
>
>                  Freeze::ConnectionPtr connection =
>  Freeze::createConnection(communicator(), "db");
>                  StringIntMap map(connection, "simple");
>
>
>
>
>
>
>  Saludos.
>
>
>  *****************************************************************
>  La ciencia es algo más que un conjunto de técnicas, conocimientos,
>  teoremas, pruebas ..., es una manera de pensar.
>  Si a las asignaturas de Literatura en la ESI.
>  _______________________________________________
>  CRySoL mailing list
>  http://crysol.inf-cr.uclm.es/
>  https://arco.inf-cr.uclm.es/cgi-bin/mailman/listinfo/crysol
>
>
>
_______________________________________________
CRySoL mailing list
http://crysol.inf-cr.uclm.es/
https://arco.inf-cr.uclm.es/cgi-bin/mailman/listinfo/crysol

Responder a