是否存在单个Cabal命令可构建并复制可执行组件至指定目录?
解决方法
针对你需要单条命令构建指定可执行组件并复制到目标目录的需求,结合你使用的Cabal 3.10.1.0版本,提供以下两种可行方案:
方案1:用cabal build配合--copy-binary(推荐)
Cabal 3.8及以上版本引入了--copy-binary参数,支持构建后自动复制指定可执行文件到目标目录。执行命令:
cabal build --copy-binary --bindir=your_target_dir your_package:exe:your_component
- 仅构建你指定的
your_package:exe:your_component组件,不会额外构建项目中其他可执行文件 --bindir参数直接指定目标目录,构建完成后可执行文件会被复制到该路径下
方案2:优化cabal install命令
如果你习惯使用cabal install,可以通过以下命令避免构建所有可执行组件:
cabal install --installdir=your_target_dir your_package:exe:your_component
注:如果目标组件依赖项目内其他本地可执行组件,Cabal会自动构建这些依赖组件,但不会将它们复制到目标目录。若要完全避免构建无关组件,可添加约束参数:
cabal install --installdir=your_target_dir --constraint='other_exe_component_name:exe:other_exe_component_name <0' your_package:exe:your_component
(将other_exe_component_name替换为你想排除的组件名)
内容的提问来源于stack exchange,提问作者Cigarette Smoking Man
相关产品推荐
相关产品推荐

