Postgresql 如何修复安装时的Rust diesel cli链接libpq.lib错误

Postgresql 如何修复安装时的Rust diesel cli链接libpq.lib错误,postgresql,rust,rust-cargo,libpq,rust-diesel,Postgresql,Rust,Rust Cargo,Libpq,Rust Diesel,我正在(几个小时前)为postgres安装货箱diesel\u cli。但是,每次我运行cargo命令时: cargo install diesel\u cli--无默认功能--功能postgres 我等了几分钟才看到相同的构建失败->中止错误,并显示以下消息: 注意:链接:致命错误LNK1181:无法打开输入文件'libpq.lib' 错误:由于上一个错误而中止 错误:未能编译“diesel_cli v1.4.1”,可以在“C:\Users\\AppData\Local\Temp\cargo

我正在(几个小时前)为postgres安装货箱
diesel\u cli
。但是,每次我运行cargo命令时:

cargo install diesel\u cli--无默认功能--功能postgres
我等了几分钟才看到相同的构建失败->中止错误,并显示以下消息:

注意:链接:致命错误LNK1181:无法打开输入文件'libpq.lib'
错误:由于上一个错误而中止
错误:未能编译“diesel_cli v1.4.1”,可以在“C:\Users\\AppData\Local\Temp\cargo-InstallUUU2DTT”中找到中间构件`
原因:
无法编译“diesel\u cli”。

我在docker容器中运行postgres,在我的
C:\pgsql
上有二进制文件,并且
lib
bin
目录都在
路径上,所以我不明白为什么它没有链接。他们在文档中没有提到的还有什么其他要求?

将文件夹添加到
路径
变量没有帮助,至少在我的情况下,因为某种原因,它没有在传递到
link.exe的
/LIBPATH
参数中使用。 在我的例子中是
C:\Users\\.rustup\toolschains\stable-x86\u 64-pc-windows-msvc\lib\rustlib\x86\u 64-pc-windows-msvc\lib
您可以在错误消息的开头看到它。 在那里复制
libpq.lib
,然后从那里开始使用


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

在我的情况下,安装成功,但当我尝试运行它时,出现了此错误。 也许这对其他有同样问题的人也适用:

  • 开放式PowerShell
  • 键入
    setx PQ_LIB_DIR“C:\Program Files\PostgreSQL\13\LIB”
    (或PostgreSQL库的任何其他路径)
  • 重新启动你的电脑
  • 再跑一次

我对WSL也有同样的问题,如果您在Linux上,您可能可以找到PostgreSQL库位置并将其添加到环境变量中。

我在Ubuntu上也有同样的错误,下面的安装修复了这个问题:

sudo apt install libpq-dev

您是否在特定用户的
路径
中或系统变量的
路径
中有它?@MindSwipe它需要在哪个路径中?我想我现在是用户了。有一段时间我被困在这个问题上了,对于PG以外的数据库,这个链接有适合我的路径命令。我不知道在哪里可以找到“已回答”中提到的libpq.lib文件,键入命令(在我的例子中是复制粘贴)更容易,而且可以工作。