我正在創建一個簡單的基於MCJIT的JIT(實現更精確的Kaleidoscope tutorial in Rust)。我正在使用SectionMemoryManager :: getSymbolAddress來進行符號解析。它看到來自庫的符號(例如sin函數),但未能解析我的程序中的函數(全局的,可見的nm,用T標記)。這是預期的行爲?或者它應該是我的代碼中的一些錯誤?如何在基於LLVM MCJIT的JIT中解析當前進程符號?
如果這是預期的行爲,應該如何正確解析當前進程中的符號?我現在使用LLVMAddSymbol從流程中添加符號,因此解析開始工作。這是正確的解決方案嗎?
對於那些會閱讀我的代碼的人。符號問題與名稱無關,因爲當我嘗試使SectionMemoryManager :: getSymbolAddress工作時,我使用了no_mangle指令,因此它們被正確命名。
啊,那很好。我認爲可能有一個論壇或IRC會議室會有更多的背景細節 - 你永遠不知道未來的搜索者在解決類似問題時可能想知道什麼^ _ ^。 – Shepmaster