安装amazonka-cost-explorer时clang运行错误求助
解决M1 Mac上lts-18.28构建amazonka-cost-explorer的clang报错问题
- 禁用cryptonite的汇编优化
旧版本cryptonite的汇编代码在M1 ARM架构下存在兼容性问题,可通过编译标志强制禁用汇编:
在stack.yaml中添加如下配置:
extra-deps: - amazonka-cost-explorer-1.6.1@sha256:e81d42dbdef267dc6d2cce70548f0c5170c875f235ca26cba5c00fcf88ebcc43,3331 - cryptonite-0.29 flags: cryptonite: - disable-x86asm - disable-armasm
之后重新执行构建命令:
stack --resolver lts-18.28 build
- 升级cryptonite版本
lts-18.28默认的cryptonite-0.29对M1支持不完善,尝试替换为适配ARM架构的新版本(如0.30,需确认兼容GHC 8.10.7),修改stack.yaml的extra-deps:
extra-deps: - amazonka-cost-explorer-1.6.1@sha256:e81d42dbdef267dc6d2cce70548f0c5170c875f235ca26cba5c00fcf88ebcc43,3331 - cryptonite-0.30
- 指定stack使用brew安装的llvm@12
确保stack正确调用兼容的clang版本,设置环境变量后再构建:
export CC=$(brew --prefix llvm@12)/bin/clang export CXX=$(brew --prefix llvm@12)/bin/clang++ export LDFLAGS="-L$(brew --prefix llvm@12)/lib" export CPPFLAGS="-I$(brew --prefix llvm@12)/include" stack --resolver lts-18.28 build
- 切换到lts-20解析器+amazonka主分支
若项目允许升级GHC版本,直接采用已验证可行的组合:
修改stack.yaml指定resolver并引入amazonka主分支:
resolver: lts-20.26 extra-deps: - git: https://github.com/brendanhay/amazonka.git commit: <替换为最新提交哈希> subdirs: - amazonka-cost-explorer
再执行stack build即可。
内容的提问来源于stack exchange,提问作者PAZHAMALAI M UEE14227
相关产品推荐
相关产品推荐

