Почему мне нужно удалить `ekg` из build-deps для haskell stack / cabal, чтобы найти мою dll на Windows? - PullRequest
0 голосов
/ 07 мая 2018

Я строю проект на 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 вызывается из стека.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...