如何为使用 Stack 构建的 Haskell 项目设置可执行文件输出位置?
How do you set the executable output location for a Haskell project built with Stack?
虽然 build
使用 Stack 运行我的 Haskell 程序,但我试图将可执行文件写入 project/dist/
但无论我使用什么命令行参数或配置我更改的文件,它总是以 project/.stack-work/dist/x86_64-osx/Cabal-2.2.0.1/build/project/
.
结束
在花费大量时间查看 stack
命令的命令行参数以及 project.cabal
、Setup.hs
和 stack.yaml
中的选项之后, 我似乎找不到如何配置 stack build
.
的输出位置
如何配置 stack build
的可执行输出位置?
stack path --local-install-root
输出构建工件的路径。您只需要将 /bin/name-of-my-exe
添加到此路径即可获取可执行文件的路径。然后您只需 运行 简单的一行 bash 脚本即可将可执行文件复制到所需位置。
完整性的完整命令:
cp "$(stack path --local-install-root)/bin/name-of-my-exe" ~/.local/bin/name-of-my-exe
您可以使用 --copy-bins
标志(或 install
命令)将可执行文件复制到某个输出目录。该目标目录可以用 --local-bin-path
控制,但在 POSIX 系统上默认为 ~/.local/bin
。
虽然 build
使用 Stack 运行我的 Haskell 程序,但我试图将可执行文件写入 project/dist/
但无论我使用什么命令行参数或配置我更改的文件,它总是以 project/.stack-work/dist/x86_64-osx/Cabal-2.2.0.1/build/project/
.
在花费大量时间查看 stack
命令的命令行参数以及 project.cabal
、Setup.hs
和 stack.yaml
中的选项之后, 我似乎找不到如何配置 stack build
.
如何配置 stack build
的可执行输出位置?
stack path --local-install-root
输出构建工件的路径。您只需要将 /bin/name-of-my-exe
添加到此路径即可获取可执行文件的路径。然后您只需 运行 简单的一行 bash 脚本即可将可执行文件复制到所需位置。
完整性的完整命令:
cp "$(stack path --local-install-root)/bin/name-of-my-exe" ~/.local/bin/name-of-my-exe
您可以使用 --copy-bins
标志(或 install
命令)将可执行文件复制到某个输出目录。该目标目录可以用 --local-bin-path
控制,但在 POSIX 系统上默认为 ~/.local/bin
。