如何让 GHC 默认生成动态链接的二进制文件?

How to make GHC generate dynamically linked binaries by default?

是否可以更改 cabal 或 GHC 设置,以便 cabal install 默认生成动态二进制文件和库?

我正在使用 GHC 8.2.2,在 Ubuntu (16.04) 中使用 apt-get 安装,没有 Haskell 平台或堆栈。四处寻找,我发现了 SO 问题 。 answers/comments 那里说了一些关于在 cabal install 时添加 --enable-shared --enable-executable-dynamic 的内容。这可以为所有依赖库手动完成(这会很痛苦)。

Small Haskell program compiled with GHC into huge binary 中,接受的答案表明需要:

cabal install some_package --enable-shared --reinstall 

选项-dynamic也被提及。

我的问题是:

是否可以从一开始就更改 cabal 配置文件 (~/.cabal/config) 中的选项,以便所有二进制文件及其依赖库都使用动态链接(即 --enable-shared --enable-executable-dynamic 或默认 -dynamic)?

事实上,您可以更改 ~/.cabal/config 文件以包含以下行:

shared: True
executable-dynamic: True