有沒有辦法動態鏈接有依賴關係的共享庫?動態鏈接共享庫與依賴關係
例如,我有兩個庫,libA.so和libB.so. libB.so調用libA.so中定義的函數。
在我的主程序中,我希望用dlopen加載這兩個庫。但是,如果我嘗試:
dlopen(libA.so);
dlopen(libB.so);
然後第二個dlopen將失敗,因爲libB具有無法識別的符號。
我可以想到一些解決方法,比如將所有的目標文件構建到一個共享庫中,或者讓libB.so在libA.so上調用dlopen,但這是額外的工作。
我想我想象這個工作的方式就像在內核模塊的情況下,你可以使用「EXPORT_SYMBOL()」來允許其他模塊調用在以前加載的模塊中定義的函數。
可以用共享庫做類似的事情嗎?或者我將不得不使用我的解決方法?
謝謝!這正是我想要的 – Tony 2014-10-30 21:05:47