假设我有这个GHC命令:
ghc -ibuild/foreign/somelib \
-lstdc++ \
-outputdir "$buildDir" \
foreign/somelib/somelib.o \
src/Main.hs -o "$buildDir/Main"
字符串runGhc
命令是这样的:
runGhc (Just libdir) $ do
(setOutputFile (Just "build/Main") -> dflags) <- getSessionDynFlags
setSessionDynFlags $ dflags
{ importPaths = [".", "build/foreign/somelib"]
, ldInputs = [Option "-lstdc++"]
, libraryPaths = ["build/foreign/somelib"]
, objectDir = Just "build"
, hiDir = Just "build"
}
target <- guessTarget "src/Main.hs" Nothing Nothing
setTargets [target]
load LoadAllTargets
return ()
型
然而,这并不包括目标文件,从文档中我不确定如何添加它。把它作为一个目标似乎不起作用。
1条答案
按热度按时间oxalkeyp1#
正如评论中所建议的,解决方案是通过
ldInputs
传递它:字符串
就像使用
ld
一样,ldInputs
的定义顺序很重要。