在我的项目中,我使用的库依赖于两个C包:sqlite3
和libsqlite3-dev
。我使用apt-get install
安装它们,然后使用stack build
构建项目,一切正常。
但是,stack build
在与nix一起使用时失败,并显示错误消息“* Missing C library:sqlite3”。我知道nix环境是孤立的,我必须在那里安装它。我尝试使用nix-env -i sqlite3
安装它,但它返回error: selector ‘sqlite3’ matches no derivations
。它看起来在通道中缺失(使用nixpkgs-unstable)。
有没有什么方法可以在通道中缺少使用堆栈和nix的C库?
由于bug in IHaskell我正在使用nix,否则我只能使用堆栈。
答案 0 :(得分:3)
您需要将sqlite
添加到stack.yaml
中的包部分,如下所示:
nix:
enable: false
packages:
- sqlite
enable: false
是存在的,因此默认情况下Stack不会尝试使用Nix构建。如果您需要此行为,请删除该行。
有一个例子here。