我有一個遺留的C++代碼,我正在嘗試重新設計它。如何告訴C++連接器,稍後將由dlopen添加一些類
我想將部分代碼作爲「.so」共享庫從項目中取出,並通過「dlopen」動態加載它們。
我寫了一個動態加載機制,可以在運行時動態加載新模塊。
現在我想解耦來自主項目的現有模塊。
例如,我從主項目中提取了模塊「X」,並創建了可以稍後加載的共享庫,但是主項目的某些部分直接使用了模塊X的類,並且我無法更改它們。
我可以使用模塊X的頭文件編譯項目,但鏈接器拋出「未定義的引用」錯誤。
我該如何告訴C++連接器這些類將在稍後由運行時的dlopen機制添加?
注:我可以通過複製模塊X的創造「所以」文件‘/ lib目錄’鏈接和運行項目文件夾和‘-Lx’標誌鏈接時使用它,但如果我刪除這個文件形成/ lib文件夾啓動時項目失敗。
是的,但我想刪除鏈接時間依賴。我將X類更改爲調用解耦模塊函數的代理類。 – Emech