Автономный исполняемый файл на Haskell без использования «stack exec» - PullRequest
3 голосов
/ 13 июня 2019

Как можно было бы создать исполняемый файл из stack сгенерированного фреймворка (stack new myprog simple)?myprog.cabal затем показывает myprog как исполняемый файл, который может быть выполнен с использованием stack exec myprog.Однако: использование ./myprog не будет работать.Нет, если я не позвоню ghc --make src/Main.hs.Это работает очевидно и хорошо встраивает модули, но теперь исполняемый файл называется Main.Есть ли способ получить stack compile myprog как полный исполняемый файл, который можно вызывать из любого места, если задан путь среды?

1 Ответ

9 голосов
/ 13 июня 2019

Как вы, возможно, уже знаете, stack build создает исполняемый файл, но затем помещает его в специфичный для stack путь, к которому проще всего обратиться, используя stack exec.Однако есть другая команда: stack install, которая затем копирует исполняемый файл в удобное место.Обычно местоположение по умолчанию - ~/.local/bin (я думаю), но вы можете использовать stack install --local-bin-path <PATH>, чтобы скопировать исполняемый файл в <PATH>.Например, используйте stack install --local-bin-path ., чтобы поместить исполняемый файл в текущий рабочий каталог, или используйте stack install --local-bin-path bin, чтобы поместить его в каталог ./bin/.Затем вы можете запустить исполняемый файл, используя <PATH>/my-exe.

...