我有一個弱符號的二進制文件,我希望能夠在運行時與運行相關的共享庫鏈接。弱符號,共享庫和dlopen
$nm testrun
...
w basic2.test
...
我的第一個測試是使用.o
文件的靜態鏈接時間,即工作,但我需要它來共享。
因此,我的第二個測試是獲得一個定義了該符號的共享庫,並在編譯時將它與-lmy
(libmy.so)鏈接,實際上它也可以工作。
第三步嘗試不在編譯時鏈接和使用ld_preload技巧,這沒有奏效。
nm libmy.so
...
00000550 T basic2.test
...
我真的不知道爲什麼這個人不工作,看起來像動態加載器應該有足夠的信息來設置testruns弱符號與一個在libmy.so。
我的最終目標,我想將需要更多的工作,是在啓動時加載一個小函數,該函數用dlsym檢查適當的符號並將其設置在那裏。
任何提示?
由於多路,那不是我的實際問題,但我發現一個名不匹配,我會更新的問題 –
檢查回答。 – iabdalkader