を呼び出し、以下GHC 7.4.2は、動的に私が動的にモジュールをロードして実行しようとしているモジュール
は
TestModule.hs
module Invoke
where
import GHC
import DynFlags
import GHC.Paths (libdir)
import Unsafe.Coerce (unsafeCoerce)
import Data.Dynamic
execFnGhc :: String -> String -> Ghc a
execFnGhc modname fn = do
mod <- findModule (mkModuleName modname) Nothing
--setContext [IIModule mod]
GHC.setContext [ GHC.IIDecl $ (GHC.simpleImportDecl . GHC.mkModuleName $ modname) {GHC.ideclQualified = True} ]
value <- compileExpr (modname ++ "." ++ fn)
let value' = (unsafeCoerce value) :: a
return value'
Invoke.hs
module TestModule
where
evaluate = "Hello !!!"
私のコードです
メイン2.hs
私はプログラムを実行しようとするとimport GHC.Paths (libdir)
import GHC
import Invoke
-- import TestModule
main :: IO()
main = runGhc (Just libdir) $ do
str <- execFnGhc "TestModule" "evaluate"
return str
それは誰かが私はこのエラーを解決する助けてください、私が行方不明です何
[[email protected] mypproj]# ./Main2
Main2: <command line>: module is not loaded: `TestModule' (./TestModule.hs)
わからないエラーの下に私を見る
私はこれについてたくさん知らないですが、あなたは[plugins](http://hackage.haskell。 org/package/plugins)パッケージに含まれています。 – Almanildo