2
我正在Rust中構建二進制可執行文件,它需要鏈接到本機庫,如foo.a
。 foo.a
包含一個符號void bar(void)
,我想將它作爲一個回調函數公開給動態鏈接器,該函數可以在dlopen
風格的動態加載庫中被函數調用。在鏈接到Rust中的本機庫時向動態鏈接程序公開符號
如果我們使用C
來源,可以通過提供-rdynamic
來完成ld
。
gcc -rdynamic -o a_dynamic main.c foo.c
在Rust中這樣做的正確方法是什麼?我一直在使用cargo:rustc-flags=-rdynamic
在build.rs
嘗試,以及
#![feature(link_args)]
#[link_args = "-rdynamic"]
似乎都不工作。
只是一個瘋狂的猜測 - 使用貨物:rustc-flags = -C link-args = -rdynamic'。鏈接器的參數通過rustc中的'-C link-args'選項傳遞。 –
@VladimirMatveev試了一下。沒有運氣。 – WiSaGaN