我正在尝试使用Nix和Stack为wxHaskell建立一个构建环境。
我已经通过nix安装了wxWidgets-3.0.2。这是.cabal文件的相关部分
def whereIsItS(letter, word):
try:
return word.index(letter)
except ValueError:
print("letter not in string")
和stack.yaml文件
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
我尝试添加
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
但这显然不是正确的方式。
所以我摆脱了.yaml文件中的nix部分并尝试了导致失败的命令nix:
enable: true
packages: [wxwidgets]
。日志文件说
$ stack --nix build
但是我确实通过nix安装了wx-config和wxwidgets。构建过程由于某种原因无法找到它。如何设置此构建环境?有没有办法指导构建过程查看包含wx-config的目录?我无法弄清楚为什么它无法找到它。它在PATH。
答案 0 :(得分:1)
好的,我明白了。我添加了错误的“属性名称”。这是正确的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]
这似乎正确地构建了一切,我能够从这里建立一个最小的窗口(minimal.hs)