You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Haskell Stack的package.yaml中配置C编译器警告转错误参数

在Stack的package.yaml中配置GCC编译参数,将隐式函数声明警告转为错误

要把-Werror-implicit-function-declaration传递给GCC,你需要在package.yaml的对应代码块(library或executables)中,通过ghc-options字段添加带-optc-前缀的参数——GHC会自动把-optc-后面的内容传递给C编译器。

配置示例

如果你的代码是库组件:

library:
  source-dirs: src
  ghc-options:
    - -optc-Werror-implicit-function-declaration

如果是可执行程序:

executables:
  你的项目名称-exe:
    source-dirs: app
    main: Main.hs
    ghc-options:
      - -optc-Werror-implicit-function-declaration

多参数传递

如果需要给GCC添加多个参数,只需逐个添加即可:

ghc-options:
  - -optc-Werror-implicit-function-declaration
  - -optc-Wall # 示例:开启所有基础警告

配置完成后,重新用stack build编译项目,一旦出现C函数名拼写错误导致的隐式声明,编译会直接报错终止,而不是仅输出警告。

内容的提问来源于stack exchange,提问作者Joe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 12:05:05