Я пытаюсь установить проект, который использует пакет z3 под Windows 10 и стек haskell со следующей настройкой:
Предварительно скомпилированные двоичные файлы z3 (с включениями в ./z3Файлы / includes и dll в ./z3/bin) находятся в корневом каталоге проекта
myProject/
- app/
- dist/
- src/
- z3/
- package.yaml
- Setup.hs
- stack.yaml
- myProject.cabal
Файл package.yaml
содержит:
dependencies:
- base >= 4.7 && < 5
- containers
- parsec
- z3 <= 408.0
Файл stack.yaml
содержит:
extra-deps:
- z3-408.0@sha256:89bbc2d828dc1fe1f19666e8e501c69ce5d0ed8026e4a02f7eae1e69f4a352af
extra-include-dirs:
- ./z3/include
extra-lib-dirs:
- ./z3/lib
Когда я пытаюсь установить стек, я получаю следующую ошибку:
Process exited with code: ExitFailure 1
Logs have been written to: C:\Users\jmueller\repos\synthImp\.stack-work\logs\z3-408.0.log
z3-408.0: configure
Progress 1/2
-- While building package z3-408.0 using:
<...>
--extra-include-dirs=C:\Users\jmueller\repos\synthImp\./z3/include
<...>
--extra-lib-dirs=C:\Users\jmueller\repos\synthImp\./z3/lib
Configuring z3-408.0...
Cabal-simple_Z6RU0evB_2.4.0.1_ghc-8.6.5.exe: Missing dependency on a foreign
library:
* Missing (or bad) C library: z3
This problem can usually be solved by installing the system package that
provides this library (you may need the "-dev" version). If the library is
already installed but in a non-standard location then you can use the flags
--extra-include-dirs= and --extra-lib-dirs= to specify where it is.If the
library file does exist, it may contain errors that are caught by the C
compiler at the preprocessing stage. In this case you can re-run configure
with the verbosity flag -v3 to see the error messages.
Дополнительные каталоги include и дополнительные каталоги lib есть, и очевидно, что файл include тоже найден ... тампохоже, проблема на уровне компилятора c
Я пробовал оба двоичных файла для z3 (x64 и x86), и я не знаю, как захватить выходные данные препроцессора c для дальнейшей отладки.
Любая помощь высоко ценится!
Большое спасибо заранее