Discussion:
[ace-users]: Static linking of my name service wrapper application fails
(too old to reply)
g***@gmx.de
2005-01-24 11:12:05 UTC
Permalink
ACE VERSION: 5.4.1
TAO VERSION: 1.4.1

HOST MACHINE and OPERATING SYSTEM:
Pentium IV 2,4 Ghz HT 1 GB RAM
Red Hat Enterprise Linux 3 WS

TARGET MACHINE and OPERATING SYSTEM, if different from HOST:
-

COMPILER NAME AND VERSION (AND PATCHLEVEL):
gcc (GCC) 3.2.3 20030502 (Red Hat Linux 3.2.3-42)

CONTENTS OF $ACE_ROOT/ace/config.h:
#include "ace/config-linux.h"

CONTENTS OF $ACE_ROOT/include/makeinclude/platform_macros.GNU (unless
this isn't used in this case, e.g., with Microsoft Visual C++):
include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU

AREA/CLASS/EXAMPLE AFFECTED:
-

DOES THE PROBLEM AFFECT:
COMPILATION?
LINKING? YES
On Unix systems, did you run make realclean first? NO
Compiling and linking of ACE and TAO was ok, no problems
occured. The static libraries were built. The problem happens
when linking my app.
EXECUTION?
OTHER (please specify)?


SYNOPSIS:
I have written an application that wraps my server application around a
naming service. Compiling the app works well but if I link the app
statically I get unresolved symbols.

DESCRIPTION:
I have written an application that wraps an naming service. If I compile
my program everything works fine, but if I want to link the whole
application
statically to the ACE/TAO libs I get unresolved symbols. My wrapper
class
my_naming_service looks like:

#include "ace/String_Base.h"
#include "tao/PortableServer/ORB_Manager.h"
#include "orbsvcs/Naming/Naming_Utils.h"

class my_naming_service
{
public:
my_naming_service (void);

my_naming_service (int argc, char *argv[]);

virtual ~my_naming_service (void);

virtual int init (int argc, char *argv[]);

static int run (my_naming_service* instance);

protected:

int parse_args (int argc, char *argv []);

CORBA::ORB_var orb_;
TAO_Naming_Server my_naming_server_;
size_t time_;
int argc_;
char** argv_;
};

Insinde the cpp file the functions of the naming service are
implemented.

The application is compiled together with the options
-DACE_AS_STATIC_LIBS and
-DTAO_AS_STATIC_LIBS. The ACE and TAO framework was built as make
static_libs=1
and the static libs are lieing inside the directory ACE_ROOT/ace. For
linking I
added the libs libACE.a and libTAO.a to my makefile. But I'm not able to
link
the application statically. The gcc reports some unresolved symbols:

------------------->linking my_naming_service
/home/develop/Linux/bin.o/my_naming_service_main.o(.text+0x7e8): In
function `__static_initialization_and_destruction_0(int, int)':
: undefined reference to `TAO_POA_Initializer::init()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x2d): In function
`my_naming_service::my_naming_service()':
: undefined reference to `TAO_Naming_Server::TAO_Naming_Server()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0xf6): In function
`my_naming_service::my_naming_service()':
: undefined reference to `TAO_Naming_Server::~TAO_Naming_Server()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x15b): In function
`my_naming_service::my_naming_service()':
: undefined reference to `TAO_Naming_Server::TAO_Naming_Server()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x224): In function
`my_naming_service::my_naming_service()':
: undefined reference to `TAO_Naming_Server::~TAO_Naming_Server()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x289): In function
`my_naming_service::my_naming_service(int, char**)':
: undefined reference to `TAO_Naming_Server::TAO_Naming_Server()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x366): In function
`my_naming_service::my_naming_service(int, char**)':
: undefined reference to `TAO_Naming_Server::~TAO_Naming_Server()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x3cb): In function
`my_naming_service::my_naming_service(int, char**)':
: undefined reference to `TAO_Naming_Server::TAO_Naming_Server()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x4a8): In function
`my_naming_service::my_naming_service(int, char**)':
: undefined reference to `TAO_Naming_Server::~TAO_Naming_Server()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x54a): In function
`my_naming_service::~my_naming_service()':
: undefined reference to `TAO_Naming_Server::~TAO_Naming_Server()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x5ea): In function
`my_naming_service::~my_naming_service()':
: undefined reference to `TAO_Naming_Server::~TAO_Naming_Server()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x68a): In function
`my_naming_service::~my_naming_service()':
: undefined reference to `TAO_Naming_Server::~TAO_Naming_Server()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x6e5): In function
`my_naming_service::init(int, char**)':
: undefined reference to `CORBA::Environment::Environment()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x718): In function
`my_naming_service::init(int, char**)':
: undefined reference to `CORBA::ORB_init(int&, char**, char const*,
CORBA::Environment&)'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x770): In function
`my_naming_service::init(int, char**)':
: undefined reference to `TAO_Naming_Server::init_with_orb(int, char**,
CORBA::ORB*)'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x7a5): In function
`my_naming_service::init(int, char**)':
: undefined reference to `CORBA::Environment::~Environment()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x7ea): In function
`my_naming_service::init(int, char**)':
: undefined reference to `CORBA::Exception::_tao_print_exception(char
const*, _IO_FILE*) const'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x875): In function
`my_naming_service::init(int, char**)':
: undefined reference to `CORBA::Environment::~Environment()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x8b3): In function
`my_naming_service::init(int, char**)':
: undefined reference to `CORBA::Environment::~Environment()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x8d1): In function
`my_naming_service::init(int, char**)':
: undefined reference to `CORBA::Environment::~Environment()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x90d): In function
`my_naming_service::parse_args(int, char**)':
: undefined reference to `ACE_Get_Opt::ACE_Get_Opt(int, char**, char
const*, int, int, int, int)'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x947): In function
`my_naming_service::parse_args(int, char**)':
: undefined reference to `ACE_Get_Opt::operator()()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x9f0): In function
`my_naming_service::parse_args(int, char**)':
: undefined reference to `ACE_Get_Opt::~ACE_Get_Opt()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0xa07): In function
`my_naming_service::parse_args(int, char**)':
: undefined reference to `ACE_Get_Opt::~ACE_Get_Opt()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0xac7): In function
`my_naming_service::run(my_naming_service*)':
: undefined reference to `CORBA::Environment::Environment()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0xaf4): In function
`my_naming_service::run(my_naming_service*)':
: undefined reference to `CORBA::ORB::run()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0xb38): In function
`my_naming_service::run(my_naming_service*)':
: undefined reference to `CORBA::ORB::run(ACE_Time_Value&)'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0xb77): In function
`my_naming_service::run(my_naming_service*)':
: undefined reference to `CORBA::Exception::_tao_print_exception(char
const*, _IO_FILE*) const'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0xb9e): In function
`my_naming_service::run(my_naming_service*)':
: undefined reference to `CORBA::Environment::~Environment()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0xbf4): In function
`my_naming_service::run(my_naming_service*)':
: undefined reference to `CORBA::Environment::~Environment()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0xc12): In function
`my_naming_service::run(my_naming_service*)':
: undefined reference to `CORBA::Environment::~Environment()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0xe5f): In function
`__static_initialization_and_destruction_0(int, int)':
: undefined reference to `TAO_POA_Initializer::init()'
/home/develop/Linux/bin.o/my_naming_service.o(.gcc_except_table+0xcc):
undefined reference to `typeinfo for CORBA::Exception'
/home/develop/Linux/bin.o/my_naming_service.o(.gcc_except_table+0x124):
undefined reference to `typeinfo for CORBA::Exception'

/home/develop/Linux/bin.o/my_naming_service.o(.gnu.linkonce.t._ZN14ACE_Time_Value3setEll+0x1e):
In function `ACE_Time_Value::set(long, long)':
: undefined reference to `ACE_Time_Value::normalize()'

/home/develop/Linux/bin.o/my_naming_service.o(.gnu.linkonce.t._ZN5CORBA3ORB12_decr_refcntEv+0xb1):
In function `CORBA::ORB::_decr_refcnt()':
: undefined reference to `CORBA::ORB::~ORB()'
collect2: ld returned 1 exit status

If I search the .a files for any references to TAO_Naming_Server
(nm --print-file-name *.a | grep TAO_Naming_Server) I get the file
libTAO_CosNaming.a
as result. If I add this file to my makefile there are much much more
linker errors, e.g.:


/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNaming.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Naming_Context16_15TAO_ServantBase+0xcc):/home/develop/Linux/third_party/ACE_wrappers/ace/Atomic_Op_T.cpp:19:
undefined reference to `typeinfo for TAO_ServantBase'

/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNaming.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Naming_Context16_15TAO_ServantBase+0xd0):/home/develop/Linux/third_party/ACE_wrappers/ace/Atomic_Op_T.cpp:19:
undefined reference to `virtual thunk to
TAO_ServantBase::~TAO_ServantBase()'

/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNaming.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Naming_Context16_15TAO_ServantBase+0xd4):/home/develop/Linux/third_party/ACE_wrappers/ace/Atomic_Op_T.cpp:19:
undefined reference to `virtual thunk to
TAO_ServantBase::~TAO_ServantBase()'

/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNaming.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Naming_Context16_15TAO_ServantBase+0xd8):/home/develop/Linux/third_party/ACE_wrappers/ace/Atomic_Op_T.cpp:19:
undefined reference to `virtual thunk to TAO_ServantBase::_is_a(char
const*)'

/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNaming.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Naming_Context16_15TAO_ServantBase+0xdc):/home/develop/Linux/third_party/ACE_wrappers/ace/Atomic_Op_T.cpp:19:
undefined reference to `virtual thunk to TAO_ServantBase::_non_existent()'

/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNaming.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Naming_Context16_15TAO_ServantBase+0xe0):/home/develop/Linux/third_party/ACE_wrappers/ace/Atomic_Op_T.cpp:19:
undefined reference to `virtual thunk to TAO_ServantBase::_get_interface()'

/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNaming.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Naming_Context16_15TAO_ServantBase+0xe4):/home/develop/Linux/third_party/ACE_wrappers/ace/Atomic_Op_T.cpp:19:
undefined reference to `virtual thunk to TAO_ServantBase::_get_component()'

/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNaming.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Naming_Context16_15TAO_ServantBase+0xe8):/home/develop/Linux/third_party/ACE_wrappers/ace/Atomic_Op_T.cpp:19:
undefined reference to `TAO_Abstract_ServantBase::_add_ref()'

/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNaming.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Naming_Context16_15TAO_ServantBase+0xec):/home/develop/Linux/third_party/ACE_wrappers/ace/Atomic_Op_T.cpp:19:
undefined reference to `TAO_Abstract_ServantBase::_remove_ref()'

/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNaming.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Naming_Context16_15TAO_ServantBase+0xf4):/home/develop/Linux/third_party/ACE_wrappers/ace/Atomic_Op_T.cpp:19:
undefined reference to `virtual thunk to TAO_ServantBase::_create_stub()'

/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNaming.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Naming_Context16_15TAO_ServantBase+0xf8):/home/develop/Linux/third_party/ACE_wrappers/ace/Atomic_Op_T.cpp:19:
undefined reference to `virtual thunk to TAO_ServantBase::_find(char const*,
void (*&)(TAO_ServerRequest&, void*, void*), unsigned int)'

/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNaming.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Naming_Context16_15TAO_ServantBase+0xfc):/home/develop/Linux/third_party/ACE_wrappers/ace/Atomic_Op_T.cpp:19:
undefined reference to `virtual thunk to TAO_ServantBase::_find(char const*,
void (*&)(TAO_Abstract_ServantBase*, TAO::Argument**, int),
TAO::Collocation_Strategy, unsigned int)'

/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNaming.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Naming_Context16_15TAO_ServantBase+0x104):/home/develop/Linux/third_party/ACE_wrappers/ace/Atomic_Op_T.cpp:19:
undefined reference to `virtual thunk to
TAO_ServantBase::synchronous_upcall_dispatch(TAO_ServerRequest&, void*,
void*)'

/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNaming.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Naming_Context8_23TAO_RefCountServantBase+0x48):
In function `__static_initialization_and_destruction_0':
/home/develop/Linux/third_party/ACE_wrappers/TAO/tao/Seq_Out_T.cpp:12:
undefined reference to `typeinfo for TAO_RefCountServantBase'

/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNaming.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Naming_Context8_23TAO_RefCountServantBase+0x4c):
In function `__static_initialization_and_destruction_0':
/home/develop/Linux/third_party/ACE_wrappers/TAO/tao/VarOut_T.cpp:14:
undefined reference to `TAO_RefCountServantBase::~TAO_RefCountServantBase()'

/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNaming.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Naming_Context8_23TAO_RefCountServantBase+0x50):
In function `__static_initialization_and_destruction_0':

/home/develop/Linux/third_party/ACE_wrappers/TAO/tao/Object_Argument_T.cpp:15:
undefined reference to `TAO_RefCountServantBase::~TAO_RefCountServantBase()'

/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNaming.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Naming_Context8_23TAO_RefCountServantBase+0x54):/home/develop/Linux/third_party/ACE_wrappers/TAO/tao/Object_Argument_T.cpp:15:
undefined reference to `virtual thunk to TAO_ServantBase::_is_a(char
const*)'

...

Using Google I found the following bugs:
http://gcc.gnu.org/ml/gcc-prs/2003-03/msg01112.html

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=9152

Are the errors I found errors of my gcc or are these errors ACE/TAO
related? Am
I making something wrong while linking? Should the three libs be enough
for a
successfull linker run?

REPEAT BY:
-

SAMPLE FIX/WORKAROUND:
-


Regards,

Mario Freimann
--
GMX im TV ... Die Gedanken sind frei ... Schon gesehen?
Jetzt Spot online ansehen: http://www.gmx.net/de/go/tv-spot
Johnny Willemsen
2005-01-24 14:07:27 UTC
Permalink
Hi,
Post by g***@gmx.de
ACE VERSION: 5.4.1
TAO VERSION: 1.4.1
Thanks for using the PRF form
Post by g***@gmx.de
Pentium IV 2,4 Ghz HT 1 GB RAM
Red Hat Enterprise Linux 3 WS
-
gcc (GCC) 3.2.3 20030502 (Red Hat Linux 3.2.3-42)
#include "ace/config-linux.h"
CONTENTS OF
$ACE_ROOT/include/makeinclude/platform_macros.GNU (unless
include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
-
COMPILATION?
LINKING? YES
On Unix systems, did you run make realclean first? NO
Compiling and linking of ACE and TAO was ok, no problems
occured. The static libraries were built. The
problem happens
when linking my app.
EXECUTION?
OTHER (please specify)?
I have written an application that wraps my server
application around a
naming service. Compiling the app works well but if I link the app
statically I get unresolved symbols.
I have written an application that wraps an naming
service. If I compile
my program everything works fine, but if I want to link the whole
application
statically to the ACE/TAO libs I get unresolved symbols.
My wrapper
class
#include "ace/String_Base.h"
#include "tao/PortableServer/ORB_Manager.h"
#include "orbsvcs/Naming/Naming_Utils.h"
class my_naming_service
{
my_naming_service (void);
my_naming_service (int argc, char *argv[]);
virtual ~my_naming_service (void);
virtual int init (int argc, char *argv[]);
static int run (my_naming_service* instance);
int parse_args (int argc, char *argv []);
CORBA::ORB_var orb_;
TAO_Naming_Server my_naming_server_;
size_t time_;
int argc_;
char** argv_;
};
Insinde the cpp file the functions of the naming service are
implemented.
The application is compiled together with the options
-DACE_AS_STATIC_LIBS and
-DTAO_AS_STATIC_LIBS. The ACE and TAO framework was built as make
static_libs=1
and the static libs are lieing inside the directory
ACE_ROOT/ace. For
linking I
added the libs libACE.a and libTAO.a to my makefile. But
I'm not able to
link
the application statically. The gcc reports some
You should add much more libraries, TAO_PortableServer, naming service
libraries. I would recommend you look at the GNU makefiles that are
generated and see what you need, or write an MPC file for your application
and generate the GNU makefile
Post by g***@gmx.de
------------------->linking my_naming_service
/home/develop/Linux/bin.o/my_naming_service_main.o(.text+0x7e8): In
: undefined reference to `TAO_POA_Initializer::init()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x2d): In function
: undefined reference to `TAO_Naming_Server::TAO_Naming_Server()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0xf6): In function
: undefined reference to `TAO_Naming_Server::~TAO_Naming_Server()'
In function
: undefined reference to `TAO_Naming_Server::TAO_Naming_Server()'
In function
: undefined reference to `TAO_Naming_Server::~TAO_Naming_Server()'
In function
: undefined reference to `TAO_Naming_Server::TAO_Naming_Server()'
In function
: undefined reference to `TAO_Naming_Server::~TAO_Naming_Server()'
In function
: undefined reference to `TAO_Naming_Server::TAO_Naming_Server()'
In function
: undefined reference to `TAO_Naming_Server::~TAO_Naming_Server()'
In function
: undefined reference to `TAO_Naming_Server::~TAO_Naming_Server()'
In function
: undefined reference to `TAO_Naming_Server::~TAO_Naming_Server()'
In function
: undefined reference to `TAO_Naming_Server::~TAO_Naming_Server()'
In function
: undefined reference to `CORBA::Environment::Environment()'
In function
: undefined reference to `CORBA::ORB_init(int&, char**,
char const*,
CORBA::Environment&)'
In function
: undefined reference to
`TAO_Naming_Server::init_with_orb(int, char**,
CORBA::ORB*)'
In function
: undefined reference to `CORBA::Environment::~Environment()'
In function
: undefined reference to
`CORBA::Exception::_tao_print_exception(char
const*, _IO_FILE*) const'
In function
: undefined reference to `CORBA::Environment::~Environment()'
In function
: undefined reference to `CORBA::Environment::~Environment()'
In function
: undefined reference to `CORBA::Environment::~Environment()'
In function
: undefined reference to `ACE_Get_Opt::ACE_Get_Opt(int,
char**, char
const*, int, int, int, int)'
In function
: undefined reference to `ACE_Get_Opt::operator()()'
In function
: undefined reference to `ACE_Get_Opt::~ACE_Get_Opt()'
In function
: undefined reference to `ACE_Get_Opt::~ACE_Get_Opt()'
In function
: undefined reference to `CORBA::Environment::Environment()'
In function
: undefined reference to `CORBA::ORB::run()'
In function
: undefined reference to `CORBA::ORB::run(ACE_Time_Value&)'
In function
: undefined reference to
`CORBA::Exception::_tao_print_exception(char
const*, _IO_FILE*) const'
In function
: undefined reference to `CORBA::Environment::~Environment()'
In function
: undefined reference to `CORBA::Environment::~Environment()'
In function
: undefined reference to `CORBA::Environment::~Environment()'
In function
: undefined reference to `TAO_POA_Initializer::init()'
undefined reference to `typeinfo for CORBA::Exception'
/home/develop/Linux/bin.o/my_naming_service.o(.gcc_except_tabl
undefined reference to `typeinfo for CORBA::Exception'
/home/develop/Linux/bin.o/my_naming_service.o(.gnu.linkonce.t.
: undefined reference to `ACE_Time_Value::normalize()'
/home/develop/Linux/bin.o/my_naming_service.o(.gnu.linkonce.t.
: undefined reference to `CORBA::ORB::~ORB()'
collect2: ld returned 1 exit status
If I search the .a files for any references to TAO_Naming_Server
(nm --print-file-name *.a | grep TAO_Naming_Server) I get the file
libTAO_CosNaming.a
as result. If I add this file to my makefile there are
much much more
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
ming_Context16_15TAO_ServantBase+0xcc):/home/develop/Linux/thi
undefined reference to `typeinfo for TAO_ServantBase'
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
ming_Context16_15TAO_ServantBase+0xd0):/home/develop/Linux/thi
undefined reference to `virtual thunk to
TAO_ServantBase::~TAO_ServantBase()'
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
ming_Context16_15TAO_ServantBase+0xd4):/home/develop/Linux/thi
undefined reference to `virtual thunk to
TAO_ServantBase::~TAO_ServantBase()'
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
ming_Context16_15TAO_ServantBase+0xd8):/home/develop/Linux/thi
undefined reference to `virtual thunk to TAO_ServantBase::_is_a(char
const*)'
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
ming_Context16_15TAO_ServantBase+0xdc):/home/develop/Linux/thi
undefined reference to `virtual thunk to
TAO_ServantBase::_non_existent()'
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
ming_Context16_15TAO_ServantBase+0xe0):/home/develop/Linux/thi
undefined reference to `virtual thunk to
TAO_ServantBase::_get_interface()'
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
ming_Context16_15TAO_ServantBase+0xe4):/home/develop/Linux/thi
undefined reference to `virtual thunk to
TAO_ServantBase::_get_component()'
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
ming_Context16_15TAO_ServantBase+0xe8):/home/develop/Linux/thi
undefined reference to `TAO_Abstract_ServantBase::_add_ref()'
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
ming_Context16_15TAO_ServantBase+0xec):/home/develop/Linux/thi
undefined reference to `TAO_Abstract_ServantBase::_remove_ref()'
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
ming_Context16_15TAO_ServantBase+0xf4):/home/develop/Linux/thi
undefined reference to `virtual thunk to
TAO_ServantBase::_create_stub()'
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
ming_Context16_15TAO_ServantBase+0xf8):/home/develop/Linux/thi
undefined reference to `virtual thunk to
TAO_ServantBase::_find(char const*,
void (*&)(TAO_ServerRequest&, void*, void*), unsigned int)'
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
ming_Context16_15TAO_ServantBase+0xfc):/home/develop/Linux/thi
undefined reference to `virtual thunk to
TAO_ServantBase::_find(char const*,
void (*&)(TAO_Abstract_ServantBase*, TAO::Argument**, int),
TAO::Collocation_Strategy, unsigned int)'
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
ming_Context16_15TAO_ServantBase+0x104):/home/develop/Linux/th
undefined reference to `virtual thunk to
TAO_ServantBase::synchronous_upcall_dispatch(TAO_ServerRequest
&, void*,
void*)'
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
undefined reference to `typeinfo for TAO_RefCountServantBase'
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
undefined reference to
`TAO_RefCountServantBase::~TAO_RefCountServantBase()'
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
/home/develop/Linux/third_party/ACE_wrappers/TAO/tao/Object_Ar
undefined reference to
`TAO_RefCountServantBase::~TAO_RefCountServantBase()'
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
ming_Context8_23TAO_RefCountServantBase+0x54):/home/develop/Li
undefined reference to `virtual thunk to TAO_ServantBase::_is_a(char
const*)'
...
http://gcc.gnu.org/ml/gcc-prs/2003-03/msg01112.html
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&
database=gcc&pr=9152
Are the errors I found errors of my gcc or are these
errors ACE/TAO
related? Am
I making something wrong while linking? Should the three
libs be enough
for a
successfull linker run?
You just should add all needed libraries.

Regards,

Johnny Willemsen
Remedy IT
Leeghwaterstraat 25
2811 DT Reeuwijk
The Netherlands
www.theaceorb.nl / www.remedy.nl
Balachandran Natarajan
2005-01-24 16:32:33 UTC
Permalink
Hi
Post by g***@gmx.de
ACE VERSION: 5.4.1
TAO VERSION: 1.4.1
Thanks for using the PRF! If possible, could you please upgrade to
the latest version of ACE+TAO available at

http://deuce.doc.wustl.edu/Download.html

The latest version is x.4.3 and it uses MPC to generate Makefiles which
are less error prone.
Post by g***@gmx.de
Pentium IV 2,4 Ghz HT 1 GB RAM
Red Hat Enterprise Linux 3 WS
-
gcc (GCC) 3.2.3 20030502 (Red Hat Linux 3.2.3-42)
#include "ace/config-linux.h"
CONTENTS OF $ACE_ROOT/include/makeinclude/platform_macros.GNU (unless
include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
-
COMPILATION?
LINKING? YES
On Unix systems, did you run make realclean first? NO
Compiling and linking of ACE and TAO was ok, no problems
occured. The static libraries were built. The problem happens
when linking my app.
EXECUTION?
OTHER (please specify)?
I have written an application that wraps my server application around a
naming service. Compiling the app works well but if I link the app
statically I get unresolved symbols.
I have written an application that wraps an naming service. If I compile
my program everything works fine, but if I want to link the whole
application
statically to the ACE/TAO libs I get unresolved symbols. My wrapper
class
#include "ace/String_Base.h"
#include "tao/PortableServer/ORB_Manager.h"
#include "orbsvcs/Naming/Naming_Utils.h"
class my_naming_service
{
my_naming_service (void);
my_naming_service (int argc, char *argv[]);
virtual ~my_naming_service (void);
virtual int init (int argc, char *argv[]);
static int run (my_naming_service* instance);
int parse_args (int argc, char *argv []);
CORBA::ORB_var orb_;
TAO_Naming_Server my_naming_server_;
size_t time_;
int argc_;
char** argv_;
};
Insinde the cpp file the functions of the naming service are
implemented.
The application is compiled together with the options
-DACE_AS_STATIC_LIBS and
-DTAO_AS_STATIC_LIBS. The ACE and TAO framework was built as make
static_libs=1
and the static libs are lieing inside the directory ACE_ROOT/ace. For
linking I
added the libs libACE.a and libTAO.a to my makefile. But I'm not able to
link
------------------->linking my_naming_service
/home/develop/Linux/bin.o/my_naming_service_main.o(.text+0x7e8): In
: undefined reference to `TAO_POA_Initializer::init()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x2d): In function
: undefined reference to `TAO_Naming_Server::TAO_Naming_Server()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0xf6): In function
: undefined reference to `TAO_Naming_Server::~TAO_Naming_Server()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x15b): In function
: undefined reference to `TAO_Naming_Server::TAO_Naming_Server()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x224): In function
: undefined reference to `TAO_Naming_Server::~TAO_Naming_Server()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x289): In function
: undefined reference to `TAO_Naming_Server::TAO_Naming_Server()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x366): In function
: undefined reference to `TAO_Naming_Server::~TAO_Naming_Server()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x3cb): In function
: undefined reference to `TAO_Naming_Server::TAO_Naming_Server()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x4a8): In function
: undefined reference to `TAO_Naming_Server::~TAO_Naming_Server()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x54a): In function
: undefined reference to `TAO_Naming_Server::~TAO_Naming_Server()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x5ea): In function
: undefined reference to `TAO_Naming_Server::~TAO_Naming_Server()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x68a): In function
: undefined reference to `TAO_Naming_Server::~TAO_Naming_Server()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x6e5): In function
: undefined reference to `CORBA::Environment::Environment()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x718): In function
: undefined reference to `CORBA::ORB_init(int&, char**, char const*,
CORBA::Environment&)'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x770): In function
: undefined reference to `TAO_Naming_Server::init_with_orb(int, char**,
CORBA::ORB*)'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x7a5): In function
: undefined reference to `CORBA::Environment::~Environment()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x7ea): In function
: undefined reference to `CORBA::Exception::_tao_print_exception(char
const*, _IO_FILE*) const'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x875): In function
: undefined reference to `CORBA::Environment::~Environment()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x8b3): In function
: undefined reference to `CORBA::Environment::~Environment()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x8d1): In function
: undefined reference to `CORBA::Environment::~Environment()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x90d): In function
: undefined reference to `ACE_Get_Opt::ACE_Get_Opt(int, char**, char
const*, int, int, int, int)'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x947): In function
: undefined reference to `ACE_Get_Opt::operator()()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x9f0): In function
: undefined reference to `ACE_Get_Opt::~ACE_Get_Opt()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0xa07): In function
: undefined reference to `ACE_Get_Opt::~ACE_Get_Opt()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0xac7): In function
: undefined reference to `CORBA::Environment::Environment()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0xaf4): In function
: undefined reference to `CORBA::ORB::run()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0xb38): In function
: undefined reference to `CORBA::ORB::run(ACE_Time_Value&)'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0xb77): In function
: undefined reference to `CORBA::Exception::_tao_print_exception(char
const*, _IO_FILE*) const'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0xb9e): In function
: undefined reference to `CORBA::Environment::~Environment()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0xbf4): In function
: undefined reference to `CORBA::Environment::~Environment()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0xc12): In function
: undefined reference to `CORBA::Environment::~Environment()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0xe5f): In function
: undefined reference to `TAO_POA_Initializer::init()'
undefined reference to `typeinfo for CORBA::Exception'
undefined reference to `typeinfo for CORBA::Exception'
: undefined reference to `ACE_Time_Value::normalize()'
: undefined reference to `CORBA::ORB::~ORB()'
collect2: ld returned 1 exit status
If I search the .a files for any references to TAO_Naming_Server
(nm --print-file-name *.a | grep TAO_Naming_Server) I get the file
libTAO_CosNaming.a
as result. If I add this file to my makefile there are much much more
undefined reference to `typeinfo for TAO_ServantBase'
undefined reference to `virtual thunk to
TAO_ServantBase::~TAO_ServantBase()'
undefined reference to `virtual thunk to
TAO_ServantBase::~TAO_ServantBase()'
undefined reference to `virtual thunk to TAO_ServantBase::_is_a(char
const*)'
undefined reference to `virtual thunk to TAO_ServantBase::_non_existent()'
undefined reference to `virtual thunk to TAO_ServantBase::_get_interface()'
undefined reference to `virtual thunk to TAO_ServantBase::_get_component()'
undefined reference to `TAO_Abstract_ServantBase::_add_ref()'
undefined reference to `TAO_Abstract_ServantBase::_remove_ref()'
undefined reference to `virtual thunk to TAO_ServantBase::_create_stub()'
undefined reference to `virtual thunk to TAO_ServantBase::_find(char const*,
void (*&)(TAO_ServerRequest&, void*, void*), unsigned int)'
undefined reference to `virtual thunk to TAO_ServantBase::_find(char const*,
void (*&)(TAO_Abstract_ServantBase*, TAO::Argument**, int),
TAO::Collocation_Strategy, unsigned int)'
undefined reference to `virtual thunk to
TAO_ServantBase::synchronous_upcall_dispatch(TAO_ServerRequest&, void*,
void*)'
undefined reference to `typeinfo for TAO_RefCountServantBase'
undefined reference to `TAO_RefCountServantBase::~TAO_RefCountServantBase()'
undefined reference to `TAO_RefCountServantBase::~TAO_RefCountServantBase()'
undefined reference to `virtual thunk to TAO_ServantBase::_is_a(char
const*)'
...
http://gcc.gnu.org/ml/gcc-prs/2003-03/msg01112.html
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=9152
Are the errors I found errors of my gcc or are these errors ACE/TAO
related? Am
I making something wrong while linking? Should the three libs be enough
for a
successfull linker run?
Looks like you are missing a bunch of libraries that are required to link
your application properly. When you upgrade please try to use MPC which
tries to address many of these issues.

HTH

Thanks
Bala
Douglas C. Schmidt
2005-01-24 18:49:02 UTC
Permalink
Hi Folks,
Post by Johnny Willemsen
Post by g***@gmx.de
ACE VERSION: 5.4.1
TAO VERSION: 1.4.1
You should add much more libraries, TAO_PortableServer, naming service
libraries. I would recommend you look at the GNU makefiles that are
generated and see what you need, or write an MPC file for your application
and generate the GNU makefile
It would also be helpful to check out the various example applications
in TAO_ROOT/examples/ to see what they link. I recommend upgrading to
TAO 1.4.3 <deuce.doc.wustl.edu/Download.html>, which has better
support for MPC, etc.

Take care,

Doug
Post by Johnny Willemsen
Post by g***@gmx.de
------------------->linking my_naming_service
/home/develop/Linux/bin.o/my_naming_service_main.o(.text+0x7e8): In
: undefined reference to `TAO_POA_Initializer::init()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0x2d): In function
: undefined reference to `TAO_Naming_Server::TAO_Naming_Server()'
/home/develop/Linux/bin.o/my_naming_service.o(.text+0xf6): In function
: undefined reference to `TAO_Naming_Server::~TAO_Naming_Server()'
In function
: undefined reference to `TAO_Naming_Server::TAO_Naming_Server()'
In function
: undefined reference to `TAO_Naming_Server::~TAO_Naming_Server()'
In function
: undefined reference to `TAO_Naming_Server::TAO_Naming_Server()'
In function
: undefined reference to `TAO_Naming_Server::~TAO_Naming_Server()'
In function
: undefined reference to `TAO_Naming_Server::TAO_Naming_Server()'
In function
: undefined reference to `TAO_Naming_Server::~TAO_Naming_Server()'
In function
: undefined reference to `TAO_Naming_Server::~TAO_Naming_Server()'
In function
: undefined reference to `TAO_Naming_Server::~TAO_Naming_Server()'
In function
: undefined reference to `TAO_Naming_Server::~TAO_Naming_Server()'
In function
: undefined reference to `CORBA::Environment::Environment()'
In function
: undefined reference to `CORBA::ORB_init(int&, char**,
char const*,
CORBA::Environment&)'
In function
: undefined reference to
`TAO_Naming_Server::init_with_orb(int, char**,
CORBA::ORB*)'
In function
: undefined reference to `CORBA::Environment::~Environment()'
In function
: undefined reference to
`CORBA::Exception::_tao_print_exception(char
const*, _IO_FILE*) const'
In function
: undefined reference to `CORBA::Environment::~Environment()'
In function
: undefined reference to `CORBA::Environment::~Environment()'
In function
: undefined reference to `CORBA::Environment::~Environment()'
In function
: undefined reference to `ACE_Get_Opt::ACE_Get_Opt(int,
char**, char
const*, int, int, int, int)'
In function
: undefined reference to `ACE_Get_Opt::operator()()'
In function
: undefined reference to `ACE_Get_Opt::~ACE_Get_Opt()'
In function
: undefined reference to `ACE_Get_Opt::~ACE_Get_Opt()'
In function
: undefined reference to `CORBA::Environment::Environment()'
In function
: undefined reference to `CORBA::ORB::run()'
In function
: undefined reference to `CORBA::ORB::run(ACE_Time_Value&)'
In function
: undefined reference to
`CORBA::Exception::_tao_print_exception(char
const*, _IO_FILE*) const'
In function
: undefined reference to `CORBA::Environment::~Environment()'
In function
: undefined reference to `CORBA::Environment::~Environment()'
In function
: undefined reference to `CORBA::Environment::~Environment()'
In function
: undefined reference to `TAO_POA_Initializer::init()'
undefined reference to `typeinfo for CORBA::Exception'
/home/develop/Linux/bin.o/my_naming_service.o(.gcc_except_tabl
undefined reference to `typeinfo for CORBA::Exception'
/home/develop/Linux/bin.o/my_naming_service.o(.gnu.linkonce.t.
: undefined reference to `ACE_Time_Value::normalize()'
/home/develop/Linux/bin.o/my_naming_service.o(.gnu.linkonce.t.
: undefined reference to `CORBA::ORB::~ORB()'
collect2: ld returned 1 exit status
If I search the .a files for any references to TAO_Naming_Server
(nm --print-file-name *.a | grep TAO_Naming_Server) I get the file
libTAO_CosNaming.a
as result. If I add this file to my makefile there are
much much more
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
ming_Context16_15TAO_ServantBase+0xcc):/home/develop/Linux/thi
undefined reference to `typeinfo for TAO_ServantBase'
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
ming_Context16_15TAO_ServantBase+0xd0):/home/develop/Linux/thi
undefined reference to `virtual thunk to
TAO_ServantBase::~TAO_ServantBase()'
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
ming_Context16_15TAO_ServantBase+0xd4):/home/develop/Linux/thi
undefined reference to `virtual thunk to
TAO_ServantBase::~TAO_ServantBase()'
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
ming_Context16_15TAO_ServantBase+0xd8):/home/develop/Linux/thi
undefined reference to `virtual thunk to TAO_ServantBase::_is_a(char
const*)'
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
ming_Context16_15TAO_ServantBase+0xdc):/home/develop/Linux/thi
undefined reference to `virtual thunk to
TAO_ServantBase::_non_existent()'
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
ming_Context16_15TAO_ServantBase+0xe0):/home/develop/Linux/thi
undefined reference to `virtual thunk to
TAO_ServantBase::_get_interface()'
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
ming_Context16_15TAO_ServantBase+0xe4):/home/develop/Linux/thi
undefined reference to `virtual thunk to
TAO_ServantBase::_get_component()'
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
ming_Context16_15TAO_ServantBase+0xe8):/home/develop/Linux/thi
undefined reference to `TAO_Abstract_ServantBase::_add_ref()'
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
ming_Context16_15TAO_ServantBase+0xec):/home/develop/Linux/thi
undefined reference to `TAO_Abstract_ServantBase::_remove_ref()'
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
ming_Context16_15TAO_ServantBase+0xf4):/home/develop/Linux/thi
undefined reference to `virtual thunk to
TAO_ServantBase::_create_stub()'
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
ming_Context16_15TAO_ServantBase+0xf8):/home/develop/Linux/thi
undefined reference to `virtual thunk to
TAO_ServantBase::_find(char const*,
void (*&)(TAO_ServerRequest&, void*, void*), unsigned int)'
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
ming_Context16_15TAO_ServantBase+0xfc):/home/develop/Linux/thi
undefined reference to `virtual thunk to
TAO_ServantBase::_find(char const*,
void (*&)(TAO_Abstract_ServantBase*, TAO::Argument**, int),
TAO::Collocation_Strategy, unsigned int)'
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
ming_Context16_15TAO_ServantBase+0x104):/home/develop/Linux/th
undefined reference to `virtual thunk to
TAO_ServantBase::synchronous_upcall_dispatch(TAO_ServerRequest
&, void*,
void*)'
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
undefined reference to `typeinfo for TAO_RefCountServantBase'
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
undefined reference to
`TAO_RefCountServantBase::~TAO_RefCountServantBase()'
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
/home/develop/Linux/third_party/ACE_wrappers/TAO/tao/Object_Ar
undefined reference to
`TAO_RefCountServantBase::~TAO_RefCountServantBase()'
/home/develop/Linux/third_party/ACE_wrappers/ace/libTAO_CosNam
ing.a(Naming_Context_Interface.o)(.gnu.linkonce.d._ZTC18TAO_Na
ming_Context8_23TAO_RefCountServantBase+0x54):/home/develop/Li
undefined reference to `virtual thunk to TAO_ServantBase::_is_a(char
const*)'
...
http://gcc.gnu.org/ml/gcc-prs/2003-03/msg01112.html
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&
database=gcc&pr=9152
Are the errors I found errors of my gcc or are these
errors ACE/TAO
related? Am
I making something wrong while linking? Should the three
libs be enough
for a
successfull linker run?
You just should add all needed libraries.
Regards,
Johnny Willemsen
Remedy IT
Leeghwaterstraat 25
2811 DT Reeuwijk
The Netherlands
www.theaceorb.nl / www.remedy.nl
--
Dr. Douglas C. Schmidt, Professor TEL: (615) 343-8197
Electrical Engineering and Computer Science FAX: (615) 343-7440
Vanderbilt University WEB: www.cs.wustl.edu/~schmidt/
Nashville, TN 37203 NET: ***@vanderbilt.edu
Johnny Willemsen
2005-01-25 22:56:32 UTC
Permalink
Hi,

When you upgrade to x.4.3 you won't need libTAO_ObjRefTemplate,
libTAO_IORInterceptor and libTAO_Valuetype.

Regards,

Johnny Willemsen
Remedy IT
Leeghwaterstraat 25
2811 DT Reeuwijk
The Netherlands
www.theaceorb.nl / www.remedy.nl
-----Original Message-----
Sent: dinsdag 25 januari 2005 18:45
Subject: AW: [ace-users]: Static linking of my name service
wrapper application fails
libTAO_PortableServer.a
libTAO_CosNaming.a
libTAO_BiDirGIOP.a
libTAO_CosTrading.a
libTAO_Svc_Utils.a
libTAO_CosEvent.a
libTAO_CosLoadBalancing.a
libTAO_Messaging.a
libTAO_FaultTolerance.a
libTAO_PortableGroup.a
libTAO_Valuetype.a
libTAO_ObjRefTemplate.a
libTAO_IORInterceptor.a
libTAO_IFRService.a
libTAO_DynamicInterface.a
libTAO_IORTable.a
libTAO.a
libACE.a
After that the application links fine with version 5.4.1.
Regards
Mario Freimann
--
GMX im TV ... Die Gedanken sind frei ... Schon gesehen?
Jetzt Spot online ansehen: http://www.gmx.net/de/go/tv-spot
Loading...