2011-10-20 12 views
1

假設我有一個已編譯的共享Haskell庫(Linux)。我可以以某種方式使用System.Posix.DynamicLinker(dlopen和dlsym)來獲得實際可調用的Haskell函數嗎?如果是這樣,什麼字符串傳遞給dlsym(我認爲Haskell函數名稱已被破壞)以及如何將返回的FunP書轉換爲Haskell函數?我認爲至少Haskell運行時必須這樣做。如何在Haskell共享庫上使用System.Posix.DynamicLinker

有人做過這樣的事嗎?

+0

你需要'外部導出'你想調用的函數。 – augustss

+1

閱讀FFI規範,它解釋了很多。 – augustss

+0

謝謝,我擔心:)。 – MOswald

回答

1
+0

嗯,有點。它目前不能在我的機器上編譯(失敗:src/System/Plugins/Load.hs:87:35: 模塊'GHC'不會導出'defaultCallbacks',而且你似乎需要目標文件。嗨文件和package.conf。雖然這通常是好的(如果我想讓它編譯),我會很好奇知道低級別的東西也。 – MOswald