如何在安装时修复铁 rust 柴油CLI链接libpq.lib错误

k10s72fa  于 2022-09-21  发布在  PostgreSQL
关注(0)|答案(6)|浏览(222)

我正在试着(现在几个小时)为Postgres安装货箱diesel_cli。但是,每次我运行recommended Cargo命令时:

cargo install diesel_cli --no-default-features --features postgres

我等待了几分钟才看到相同的构建失败->中止错误,并显示以下消息:

note: LINK : fatal error LNK1181: cannot open input file 'libpq.lib'

error: aborting due to previous error

error: failed to compile `diesel_cli v1.4.1`, intermediate artifacts can be found at `C:Users<user name here>AppDataLocalTempcargo-installUU2DtT`

Caused by:
  could not compile `diesel_cli`.

我在docker容器中运行postgres,并将C:\pgsql上的二进制文件与PATH上的libbin目录放在一起,因此我不知道为什么它没有链接。还有什么是他们在文件中没有提到的要求?

wqsoz72f

wqsoz72f1#

在我的例子中,安装是成功的,但当我试图运行它时,出现了这个错误。也许这对其他有同样问题的人也有效:

  • 打开PowerShell
  • 键入setx PQ_LIB_DIR "C:\Program Files\PostgreSQL\13\lib"(或您的PostgreSQL库的任何其他路径)
  • 重新启动您的PC
  • 再次运行

我在WSL上遇到了同样的问题,如果你在Linux上,你可能可以找到PostgreSQL库的位置,并将它添加到你的环境变量中。

toe95027

toe950272#

更新:

下面的答案是较旧版本的变通方法。请先检查是否可以执行cargo clean

原始版本

将文件夹添加到PATH变量没有帮助,至少在我的例子中是这样,因为由于某种原因,它没有在传递给link.exe/LIBPATH参数中使用。在我的例子中,它是C:\Users\<username>\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib,您可以在错误消息的开头看到它。将libpq.lib复制到那里,它将从那里使用。

安装后,柴油将需要一些其他组件。将libcrypto-1_1-x64.dlllibiconv-2.dlllibssl-1_1-x64.dll复制到执行where diesel命令后显示的文件夹中

luaexgnf

luaexgnf3#

我在Ubuntu上也遇到了同样的错误,对我来说,下面的安装修复了这个问题:

sudo apt install libpq-dev
7y4bm7vi

7y4bm7vi4#

如果在环境无效时尝试装载构建(或运行libpq rust crate的构建脚本的任何内容),则需要在修复环境后执行cargo clean,否则即使在路径中也会收到libpq.lib Not Found错误。将文件复制到另一个目录中的其他答案只是一些技巧

6ioyuze2

6ioyuze25#

无需移动文件,只需在路径中添加C:\Program Files\PostgreSQL\14\libC:\Program Files\PostgreSQL\14\bin即可。安装和运行柴油应该不会有任何问题。

  • 注意:您的路径可能不同,请记住关闭/重新打开您的终端,以便更新PATH变量。*

(在Windows 10上测试)

wmtdaxz3

wmtdaxz36#

要为窗口提供明确的步骤,请执行以下操作:

1.在环境变量的路径中添加C:\Users.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib
1.复制C:\Program Files\PostgreSQL\14\lib中的libpq.lib(显然这是版本14),并将其粘贴到C:\Users.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib中

相关问题