MacOS下如何为stack install命令指定C/C++编译器?
为Stack指定C编译器的解决办法
针对你遇到的MacOS下Stack使用gcc-13编译报错的问题,这里提供三种指定C编译器的方式:
1. 临时命令行指定
直接在安装命令后追加--with-gcc参数,和Cabal的用法一致:
stack install hoogle --with-gcc=/usr/bin/gcc
这个设置仅对当前执行的命令生效,适合单次安装场景。
2. 全局永久配置
编辑Stack的全局配置文件~/.stack/config.yaml(如果文件不存在就手动创建),添加以下配置项:
with-gcc: /usr/bin/gcc
保存后,所有通过Stack编译的Haskell项目都会默认使用指定的C编译器,永久生效。
3. 单个项目配置
如果只想让某个特定项目使用指定编译器,在项目根目录的stack.yaml中添加:
with-gcc: /usr/bin/gcc
该配置仅对当前项目生效,不影响其他Stack项目。
补充说明:MacOS自带的/usr/bin/gcc实际是Clang的别名,它能正确识别编译时的目标平台参数,而你系统中的gcc-13是原生GCC,不兼容这些Clang风格的参数,因此指定回系统默认的编译器即可解决报错问题。
内容的提问来源于stack exchange,提问作者dec
相关产品推荐
相关产品推荐

