From: Brian G. <ge...@ro...> - 2004-04-05 19:12:57
|
On Mon, 5 Apr 2004, Ghulam Mubashar Hassan wrote: > i am making a driver for my lab's robot. i am getting the following error. can > anyone tell me what the reason can be behind it. > > ghulam@linux:~/Documents/robotDriver> player -d ./marhesrobotdriver.so > marhes.cfg > ** Player v1.4rc2 ** Opening shared object ./marhesrobotdriver.so... > ./marhesrobotdriver.so: undefined symbol: _ZN14pid_controllerC1EiPii > [TCP] > > Parsing configuration file "marhes.cfg"... > loading driver "marhesrobotdriver" as device "6665:position:0" > player error : main.cc:parse_config_file(): > Couldn't find driver "marhesrobotdriver" > hi, Looks like your shared object doesn't contain all the necessary code. Perhaps the pid_controller symbol (probably a function?) is defined in a source file that you didn't include when building the .so. Alternatively, this could be a C++ name-mangling problem. Is your driver is a mix of C and C++? A good UNIX tool for debugging things like is 'nm'. For example: $ nm marhesrobotdriver.so will list all the symbols in the library, telling you which ones are defined and which are not. brian. -- Brian P. Gerkey ge...@ro... Stanford Robotics Lab http://robotics.stanford.edu/~gerkey |