Mam problem z GL na NixOS: problem wydaje się stary, ale wciąż nie ma prostego rozwiązania jeszcze w 2017 roku!NixOS, Haskell, opengl: problemy z budowaniem i uruchamianiem programów OpenGL
Próbuję zbudować program Haskell przy użyciu biblioteki Gloss
. Zainstalowałem gloss
i wszystko, czego potrzebuje, używając nix-shell -p mesa
i wygląda na to, że został poprawnie zbudowany i zainstalowany (przy użyciu cabal install
). Jednak gdybym zbudować program w tej samej nix-shell
to nie działa:
$ nix-shell -p mesa_glu
[nix-shell:]$ ghc --make -O2 SnakePar.hs
Linking SnakePar ...
[nix-shell:]$ ./SnakePar
SnakePar: user error (unknown GLUT entry glutInit)
podczas gdy na zewnątrz pracujące z nix-shell
się failes etap Łączenie:
$ 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)
Dzieje się tak, mimo że zostały zainstalowane ręcznie glu
biblioteka przez nix-env -iA
.
$ nix-env -q
cabal-install-1.24.0.0
ghc-8.0.1
glu-9.0.0
Próbowałem, używając freeglut
lub mesa
w ten sam sposób, ale żadna z nich (lub nawet wszystkie razem) nie działa.
Czego mi brakuje?
Ta kwestia jest istotna, ale to nie pomaga: nixos + haskell + opengl (prerequisites)
Rozwiązanie: Po włączeniu stos wszystko działa.
Czy możesz opublikować repozytorium, aby móc je odtworzyć? – iElectric
@iElectric, może to być dowolny Gloss MWE (wystarczy wyświetlić koło, na przykład) lub coś bardziej interesującego, np. RosettaCode [gra snake] (http://rosettacode.org/wiki/Snake). – samsergey
Po uważnym przeczytaniu tej strony nadal napotykam opisany problem podczas korzystania ze stosu/nixos/gloss.Byłbym bardzo wdzięczny, gdyby ktoś mógł przesłać minimalny przykład pracy do repozytorium github. To byłoby naprawdę miłe. –