我在 NixOS 上遇到了 GL 问题:问题似乎很老了,但在 2017 年仍然没有直接的解决方案!
我正在尝试使用该Gloss
库构建一个 Haskell 程序。我已经安装gloss
了它需要使用的所有东西,nix-shell -p mesa
并且它似乎已经正确构建和安装(使用cabal install
)。但是,如果我以相同的方式构建程序,nix-shell
它将不起作用:
$ nix-shell -p mesa_glu
[nix-shell:]$ ghc --make -O2 SnakePar.hs
Linking SnakePar ...
[nix-shell:]$ ./SnakePar
SnakePar: user error (unknown GLUT entry glutInit)
nix-shell
在链接阶段之外工作时失败:
$ ghc --make -O2 SnakePar.hs
[1 of 1] Compiling Main ( SnakePar.hs, SnakePar.o )
Linking SnakePar ...
/nix/store/<hash>-binutils-2.27/bin/ld: cannot find -lGLU
/nix/store/<hash>-binutils-2.27/bin/ld: cannot find -lGL
collect2: error: ld returned 1 exit status
`cc' failed in phase `Linker'. (Exit code: 1)
即使我已经glu
通过nix-env -iA
.
$ nix-env -q
cabal-install-1.24.0.0
ghc-8.0.1
glu-9.0.0
我曾尝试以相同的方式使用freeglut
or mesa
,但这些(甚至全部)都不起作用。
我错过了什么?
这个问题是相关的,但它没有帮助: nixos + haskell + opengl (prerequisites)
解决方案:切换到堆栈后一切正常。