0

我目前正在学习haskell,只是尝试使用postgresql作为数据库。 我使用堆栈( -> -> )
生成了我的项目,然后我所做的只是将持久性和 postgresql 所需的依赖项添加到 package.yaml 文件(在“依赖项:”下)。 这些都是:stack new <name>stack setupstack build

  • 执着的
  • 持久化-postgresql
  • 持久模板

然而,这会导致构建失败并显示以下消息:
postgresql-libpq > setup.exe: The program 'pg_config' is required but it could not be found。
postgresql-libpq >
-- 在构建包 postgresql-libpq-0.9.4.2 时使用:C:\Users\\AppData\Local\Temp\stack14388\postgresql-libpq-0.9.4.2.stack-work\dist\e626a42b\setup\setup --builddir =.stack-work\dist\e626a42b 配置 --user --package-db=clear --package-db=global --package-db=C:\sr\snapshots\365a3dde\pkgdb --libdir=C:\ sr\snapshots\365a3dde\lib --bindir=C:\sr\snapshots\365a3dde\bin --datadir=C:\sr\snapshots\365a3dde\share --libexecdir=C:\sr\snapshots\365a3dde\libexec - -sysconfdir=C:\sr\snapshots\365a3dde\etc --docdir=C:\sr\snapshots\365a3dde\doc\postgresql-libpq-0.9.4.2 --htmldir=C:\sr\snapshots\365a3dde\doc\ postgresql-libpq-0.9.4.2 --haddockdir=C:\sr\snapshots\365a3dde\doc\postgresql-libpq-0.9.4.2 --dependency=Cabal=Cabal-2.4.1.0-5rQrtDcYhR2LOcYye7obEr --dependency=Win32=Win32- 2.6.1.0 --dependency=base=base-4.12.0。0 --dependency=bytestring=bytestring-0.10.8.2 -f-use-pkg-config --extra-include-dirs=C:\Users\\AppData\Local\Programs\stack\x86_64-windows\msys2-20180531\ mingw64\include --extra-lib-dirs=C:\Users\\AppData\Local\Programs\stack\x86_64-windows\msys2-20180531\mingw64\lib --extra-lib-dirs=C:\Users\\ AppData\Local\Programs\stack\x86_64-windows\msys2-20180531\mingw64\bin --exact-configuration --ghc-option=-fhide-source-paths 进程退出,代码:ExitFailure 1\Users\\AppData\Local\Programs\stack\x86_64-windows\msys2-20180531\mingw64\bin --exact-configuration --ghc-option=-fhide-source-paths 进程退出,代码:ExitFailure 1\Users\\AppData\Local\Programs\stack\x86_64-windows\msys2-20180531\mingw64\bin --exact-configuration --ghc-option=-fhide-source-paths 进程退出,代码:ExitFailure 1



有谁知道如何解决这个问题以及它为什么会发生?
我是否必须安装 postgresql 才能运行构建项目?如果是这样,当数据库基本上可以无处不在时,您将如何在生产中执行此操作?

4

2 回答 2

4

看起来 Haskell 正在尝试使用 PostgreSQL 客户端共享库进行构建,libpq.dllpg_config在构建时使用来确定 PostgreSQL 的安装位置和构建方式。

这意味着您必须在构建 Haskell 的机器上安装 PostgreSQL,包括头文件、构建环境或安装程序调用它的方式。

要运行 Haskell,您只需要libpq.dll和依赖的共享库。

于 2019-12-20T12:43:20.230 回答
0

我使用以下命令解决了 Ubuntu 中的问题:

apt install libpq-dev
于 2021-10-07T01:08:13.563 回答