From: Brian G. <br...@ge...> - 2006-01-17 17:44:40
|
Joseph Baxter wrote: > Parsing configuration file "miabot.cfg" > trying to load /home/jlb/player_b/./miabot.so...failed > (/home/jlb/player_b/./miabot.so: undefined symbol: __dso_handle) > trying to load miabot.so...failed (miabot.so: cannot open shared object > file: No such file or directory) > error : error loading plugin: (null) > error : failed to load plugin: miabot.so > I get the above error when trying to load a plugin I have written, I use > the following commands to compile/link: > > $ g++ -Wall -g3 -c miabot.cc miabot_commands.cc miabot_params.cc > $ g++ -shared -nostartfiles -o miabot.so miabot.o miabot_commands.o > miabot_params.o -lbluetooth That unresolved symbol is internal to the C (or maybe C++) runtime; the error is a symptom of an incorrect or incomplete link. A common cause is using ld instead of g++ for linking, but you're already using g++, which is the right way to do it. I would try removing the -nostartfiles option to g++. I know it's in the example Makefile for Player plugins, but it shouldn't be necessary since we moved from '_init()' to 'player_driver_init()' for plugin initialization. brian. -- Brian Gerkey br...@ge... http://gerkey.org |