如何在Nix中安装build-essential解决cargo的cc链接器缺失问题
在Nix环境解决“linker cc not found”错误(替代build-essential)
Nix生态中没有直接对应Debian系build-essential的包,不过可以通过以下方式解决cargo build时的链接器缺失问题:
临时快速解决
如果只是临时在当前shell环境中修复,直接运行:
nix-shell -p gcc
进入这个shell后,cc链接器就会生效,可正常执行cargo build。
如果需要全局安装(不推荐Nix的常规使用方式,因为会污染全局环境):
nix-env -iA nixpkgs.gcc
项目级持久化配置(推荐)
更符合Nix最佳实践的方式是为项目配置专属开发环境:
- 在项目根目录创建
shell.nix文件,内容如下:
{ pkgs ? import <nixpkgs> {} }: pkgs.mkShell { buildInputs = [ pkgs.gcc pkgs.cargo # 若需要build-essential包含的其他工具(如make、pkg-config),直接添加即可 # pkgs.make # pkgs.pkg-config ]; }
- 运行
nix-shell进入配置好的环境,之后执行cargo build就不会再出现链接器缺失的错误。
注:Debian的build-essential是gcc、make、libc-dev等工具的集合,Nix中这些工具都是独立包,其中gcc已经包含了cc链接器,所以安装gcc即可解决核心问题。
内容的提问来源于stack exchange,提问作者Pierre-olivier Gendraud
相关产品推荐
相关产品推荐

