g***@gmx.de
2005-01-24 11:12:05 UTC
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
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
GMX im TV ... Die Gedanken sind frei ... Schon gesehen?
Jetzt Spot online ansehen: http://www.gmx.net/de/go/tv-spot