From: Kratochvil, B. E. <kra...@ir...> - 2004-06-03 05:59:45
|
Hello all, If you've installed Player v1.5 and are using player-mod (or some derivation thereof) to use shared objects for your driver files, you will most likely run the following error when you try to load your library: ** Player v1.5 ** Opening shared object ./exampledriver.so... ./exampledriver.so: undefined symbol: _ZN11DriverTable9AddDriverEPccPFP7CDeviceS0_P10ConfigFileiE This is because when the library is loaded using dlopen: External references in the library are resolved using the libraries in that library's dependency list and any other libraries previously opened with the RTLD_GLOBAL flag. If the executable was linked with the flag "-rdynamic", then the global symbols in the executable will also be used to resolve references in a dynamically loaded library. http://www.rt.com/man/dlopen.3.html I looked through the old makefiles of Player 1.4 and it seems that RTK_LDADD was including the -rdynamic flag in the linking stage, and now it isn't. To fix this, you will need to add -rdynamic to the player_LDADD in the Makefile in the server directory. I figured I'd post this in the developers list, so that hopefully it will be fixed and included in the standard 1.5 release. Please let me know if you have any questions. Best regards, Brad |