Tango DeviceProxy error:
|
|
---|---|
When I write a simple program for accessing a device proxy in Cpp, like #include <tango.h> #include <DeviceProxy.h> using namespace Tango; int main(unsigned int argc, char **argv) { // try // { // // create a connection to a TANGO device // DeviceProxy *device = new DeviceProxy("ttyS0/port/1"); // // Ping the device // device->ping(); ease: " << spr << endl; // } // catch (DevFailed &e) // { // Except::print_exception(e); // exit(-1); // } } When I compile it with command $ g++ client.cpp -o first It gives following error client.cpp:(.text+0x2f): undefined reference to `Tango::DeviceProxy::DeviceProxy(char const*, CORBA::ORB*)' /tmp/ccDn8erO.o: In function `__static_initialization_and_destruction_0(int, int)': client.cpp:(.text+0xa4): undefined reference to `omni_thread::init_t::init_t()' client.cpp:(.text+0xb9): undefined reference to `omni_thread::init_t::~init_t()' client.cpp:(.text+0xcd): undefined reference to `_omniFinalCleanup::_omniFinalCleanup()' client.cpp:(.text+0xe2): undefined reference to `_omniFinalCleanup::~_omniFinalCleanup()' collect2: error: ld returned 1 exit status Please any bode help me to remove out this error Thanks Bublee |
|
|
---|---|
Hi Bublee, it looks like your executable does not find the shared libraries. Can you do:
It should show you if you have the correct libraries and your LD_LIBRARY_PATH is correctly setup. Which platform on you on and how did you install Tango? Andy |
|
|
---|---|
Hi, You should include <tango.h> instead of #include <DeviceProxy.h> You should also link with all the following libraries: -ltango -lzmq -lomniORB4 -lomnithread -lCOS4 -lomniDynamic4 Do not forget to add something like: -L<tango_home>/lib to also give the path where gcc will look for the libraries Hoping this helps Reynald
Rosenberg's Law: Software is easy to make, except when you want it to do something new.
Corollary: The only software that's worth making is software that does something new. |