问题描述
我想分发一个 gui app built with Haskell,但是当我尝试在不同的 Mac(使用较旧的 macOS)上打开它时失败。
这似乎是由于 minos
mach-o load-command 中的 LC_BUILD_VERSION
值:
% otool -l ./lamdu | grep minos
minos 11.0
如何向 GHC/Cabal/stack 指定要使用的部署目标(相当于 Clang 的 -mmacosx-version-min
标志)?
解决方法
将 these lines 添加到 .cabal
文件可以解决问题:
if os(darwin)
ld-options: -mmacosx-version-min=10.9
即使通过堆栈构建显示警告,并非所有内容(即使用的 Haskell 库)都是为此部署目标构建的,但在较旧的 macOS 上测试时,可执行文件运行良好