我正在編寫一些使用動態共享庫作爲插件的代碼。使用dlopen加載庫時收到「未定義符號」錯誤
我對共享庫的構建命令行的樣子:
cc -shared -fPIC -o module.so -g -Wall module.c
在模塊內,我可以調用在已加載的主執行程序中的任何其他共享庫函數。
但是我無法訪問(導出)可執行文件本身的函數(我得到了undefined symbol
錯誤)。
我對dlopen
調用如下:
void *handle = dlopen(plugin, RTLD_NOW);
任何人都可以請告知我模塊如何調用回我的可執行文件,而不必把所有的可執行文件的實用功能到另一個共享庫?
此解決方案也適用於使用Boost擴展時,因爲shared_library類正在使用dlopen(在Linux上)加載庫。 – 2013-01-03 07:04:00