簡體   English   中英

ghc / flymake掛在預處理器指令上

[英]ghc/flymake hangs on preprocessor directives

我在emacs上使用flymake(-ghc)( 前奏設置,任何人都想知道,沒有任何額外的配置)用於yesod項目,該項目默認情況下在此處和此處有一些#if 除了flymake顯示此錯誤外,其他所有方面都很好:

/path/to/Import.hs:18:2:
    lexical error at character 'i'

線正好是

#if __GLASGOW_HASKELL__ >= 704

因此,行為與ghci完全相同:

Prelude> #if something

<interactive>:2:2: lexical error at character 'i'

我在這里想念什么嗎?

紅利auto-complete也不起作用(emacs,序曲,默認設置等):它適用於其他情況(例如R )。

我猜想flymake-ghc這個東西在檢查時不會啟用C預處理器。 要解決此問題,請在受影響的Haskell文件頂部添加以下內容:

{-# LANGUAGE CPP #-}

此編譯指示為包含的文件啟用預處理器。

通常,這實際上是啟用Haskell語言選項和擴展名的首選方法,因為這種方式將它們限制在實際需要它們的文件中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM