![](/img/trans.png)
[英]How to add a Nix project as dependency in a Haskell Stack+Nix project
[英]How to use stack with nix to build wxHaskell project?
我正在尝试使用 Nix 和 Stack 为 wxHaskell 设置构建环境。
我已经通过 nix 安装了 wxWidgets-3.0.2。 这是来自 .cabal 文件的相关部分
executable hellowx-exe
hs-source-dirs: app
main-is: Main.hs
ghc-options: -threaded -rtsopts -with-rtsopts=-N
build-depends: base
, hellowx
, wx
, wxc
, wxcore
, wxdirect
和 stack.yaml 文件
resolver: lts-5.0
extra-deps:
- wx-0.92.2.0
- wxc-0.92.2.0
- wxcore-0.92.2.0
- wxdirect-0.92.2.0
我尝试添加
nix:
enable: true
packages: [wxwidgets]
但这显然不是正确的方法。
所以我去掉了 .yaml 文件中的 nix 部分,并尝试了导致失败的命令$ stack --nix build
。 日志文件说
[1 of 1] Compiling Main ( /run/user/1000/stack8847/wxc-0.92.2.0/Setup.hs, /run/user/1000/stack8847/wxc-0.92.2.0/.stack-work/dist/x86_64-linux-nix/Cabal-1.22.5.0/setup/Main.o )
Linking /run/user/1000/stack8847/wxc-0.92.2.0/.stack-work/dist/x86_64-linux-nix/Cabal-1.22.5.0/setup/setup ...
Error: wx-config not found, please install wx-config before installing wxc
但是我确实通过 nix 安装了 wx-config 和 wxwidgets。 由于某种原因,构建过程找不到它。 我可以做些什么来设置这个构建环境? 有没有办法引导构建过程在包含 wx-config 的目录中查找? 我不明白为什么它找不到它。 它在路径中。
好的,我想通了。 我添加了错误的“属性名称”。 这是正确的 stack.yaml 文件
# at this point in time nix supports lts-5.0
resolver: lts-5.0
packages:
-'.'
extra-deps:
- wx-0.92.2.0
- wxc-0.92.2.0
- wxcore-0.92.2.0
- wxdirect-0.92.2.0
# wxwidgets-3.0.2 has the attribute name wxGTK30
# you also need zlib, mesa_noglu and x11
nix:
enable: true
packages: [zlib, wxGTK30, mesa_noglu, x11]
这似乎正确地构建了一切,我能够从这里构建一个最小的窗口( minimum.hs )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.