Я строю проект на Haskell 7.10, который зависит от tdsodbc.dll, используя стек v1.7.1 под Windows, все 64-битное.У меня есть tdsodbc.dll в папке lib
проекта, и extra-lib-dirs: lib
и extra-libraries: tdsodbc
в .cabal.
Но когда я компилирую, я получаю Missing C library: tdsodbc
, когда стек работает cabal configure
.Я попытался поместить extra-lib-dirs: [lib]
в stack.yaml
, и из этой команды configure видно, что он поместил --extra-lib-dirs=C:\Users\Kevin\src\theproject\lib
в командную строку конфигурации cabal, но все равно жалуется на отсутствие.
Теперьстранная часть: если я удаляю ekg
из build-deps
проекта (и удаляю соответствующий импорт и т. д.), проект строится просто отлично!Мне все еще нужно скопировать dll в .stack-work/dist/…
, чтобы он запустил , но почему бы ekg
в build-deps помешать Кабале настроить его?
Я испробовал трюк из Не удалось заставить Кабала найти библиотеку mpi для haskell-mpi в Windows с помещением c/Users/Kevin/src/theproject/lib
в LIBRARY_PATH
(файла .a
дляmv в моем случае, и нет .h's), но это не помогло мне.Только удаление ekg
помогло мне до сих пор.Что может быть причиной этого?«Решение» кажется совершенно не относящимся к проблеме: (
РЕДАКТИРОВАТЬ: я пытался использовать простую платформу Haskell 7.10.3 (из https://www.haskell.org/platform/prior.html), и это настроено и построено просто отлично.Так что проблема заключается только в том, когда cabal configure вызывается из стека.