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

M1 Mac运行Clash解释器出现lncurses链接错误的原因咨询

M1 Mac下Nix+Stack启动Clashi时ld: library not found for -lncurses错误原因分析

问题场景

在M1 Mac设备上,使用如下Nix Shell配置安装Stack:

{ pkgs ? import <nixpkgs> { system = "x86_64-darwin"; } }:

pkgs.mkShell {
  buildInputs = [
    pkgs.stack

    # required for clashi
    pkgs.libiconv
    pkgs.libffi
  ];
}

执行命令stack exec --package clash-ghc -- clashi启动Clash解释器时,编译ghc-tcplugins-extra和hint包过程中出现链接错误:ld: library not found for -lncurses。

错误原因

  • 架构不兼容:你的Nix配置强制指定了x86_64-darwin架构,但M1 Mac属于aarch64-darwin(arm64)架构。跨架构编译时,链接器无法找到对应x86_64-darwin版本的ncurses库,同时系统默认的aarch64-darwin版本ncurses和x86_64编译环境不兼容,导致链接失败。
  • 依赖缺失:当前Nix Shell的buildInputs中未显式添加pkgs.ncurses包。Stack在编译依赖时,无法从Nix提供的隔离环境中获取到ncurses库,只能尝试调用系统库,但因架构不匹配无法成功。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 01:11:07