在我当前的项目中,我有一个Tokens.x
需要Tokens.hs
由Alex编译的文件。在我的.cabal
文件中,我已Tokens
在other-modules
部分中列出并cabal build
愉快地创建文件。
但是,如果没有-g选项指示Alex创建文件的GHC优化版本,则不会这样做。与GHC一起使用时,此选项表示扫描速度提高了10倍,并且编译速度也提高了一个数量级。
使用GHC进行编译时,如何告诉cabal包含-g选项?
AFAIK,使用Cabal,您目前只能在配置文件中或通过命令行指定程序选项,而不能在.cabal
文件中指定程序选项。
对此有一个开放的问题:https : //github.com/haskell/cabal/issues/1223
但是,查看的来源Cabal
,我发现您的特定问题似乎默认情况下已解决。在中Distribution.Simple.PreProcess
,有:
ppAlex :: BuildInfo -> LocalBuildInfo -> PreProcessor
ppAlex _ lbi = pp { platformIndependent = True }
where pp = standardPP lbi alexProgram (hcFlags hc)
hc = compilerFlavor (compiler lbi)
hcFlags GHC = ["-g"]
hcFlags _ = []
这意味着,如果Cabal与GHC一起使用,则-g
在用作预处理器时会自动传递给Alex。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句