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

Linux平台下Haskell编译可执行文件的libffi.so链接问题

解决方案
  • 首先纠正用法:+ghc-bundled-libffi不是写在.cabal文件里的目标,而是GHC的编译选项,需要通过cabal的命令行参数或配置文件传递:

    • 命令行编译时直接指定:
      cabal build --ghc-options="+ghc-bundled-libffi"
      
    • 持久化配置(推荐):在项目根目录创建cabal.project文件,写入以下内容,后续编译会自动应用该选项:
      package *
        ghc-options: +ghc-bundled-libffi
      
  • 如果你用Stack构建项目,在stack.yaml中添加配置:

    ghc-options:
      "$locals": +ghc-bundled-libffi
    
  • 编译完成后验证效果:用ldd检查生成的可执行文件,确认不再依赖系统的libffi.so.6或libffi.so.7:

    ldd ./dist-newstyle/build/[your-arch]/[your-project]/[your-executable-path]
    
  • 注意:如果之前有构建缓存残留,先执行cabal clean清理后再重新编译,避免旧配置影响结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 16:01:00