如何修复 Rust diesel cli link libpq.lib 安装错误
How to fix Rust diesel cli link libpq.lib error on install
我正在尝试(现在几个小时)为 postgres 安装 cargo crate 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>\AppData\Local\Temp\cargo-installUU2DtT`
Caused by:
could not compile `diesel_cli`.
我在 docker 容器中 运行ning postgres,我的 C:\pgsql
上有二进制文件,lib
和 bin
目录都在PATH
所以我不明白为什么它没有链接。他们在文档中没有提到的其他要求是什么?
将文件夹添加到 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.dll
、libiconv-2.dll
和 libssl-1_1-x64.dll
复制到执行 where diesel
命令后显示的文件夹中
在我的例子中,安装是成功的,但是当我尝试 运行 时,出现了这个错误。
也许这对遇到同样问题的其他人有用:
- 打开 PowerShell
- 输入
setx PQ_LIB_DIR "C:\Program Files\PostgreSQL\lib"
(或您的 PostgreSQL 库的任何其他路径)
- 重启电脑
- 运行 再
我在使用 WSL 时遇到了同样的问题,如果您使用的是 Linux,您可能可以找到 PostgreSQL 库位置并将其添加到您的环境变量中。
我在 Ubuntu 上遇到了同样的错误,对我来说,以下安装解决了这个问题:
sudo apt install libpq-dev
无需移动文件,只需将 C:\Program Files\PostgreSQL\lib
和 C:\Program Files\PostgreSQL\bin
添加到您的 PATH 即可。安装和 运行 柴油机应该没有问题。
注意:您的路径可能不同,请记住close/reopen您的终端以便更新 PATH 变量。
(在 Windows 10 上测试)
为 windows 提供明确的步骤:
在环境变量的路径中添加C:\Users<用户名>.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib
复制 C:\Program Files\PostgreSQL\lib 中的 libpq.lib(显然这是版本 14)并将其粘贴到 C:\Users.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib
我正在尝试(现在几个小时)为 postgres 安装 cargo crate 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>\AppData\Local\Temp\cargo-installUU2DtT`
Caused by:
could not compile `diesel_cli`.
我在 docker 容器中 运行ning postgres,我的 C:\pgsql
上有二进制文件,lib
和 bin
目录都在PATH
所以我不明白为什么它没有链接。他们在文档中没有提到的其他要求是什么?
将文件夹添加到 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.dll
、libiconv-2.dll
和 libssl-1_1-x64.dll
复制到执行 where diesel
命令后显示的文件夹中
在我的例子中,安装是成功的,但是当我尝试 运行 时,出现了这个错误。 也许这对遇到同样问题的其他人有用:
- 打开 PowerShell
- 输入
setx PQ_LIB_DIR "C:\Program Files\PostgreSQL\lib"
(或您的 PostgreSQL 库的任何其他路径) - 重启电脑
- 运行 再
我在使用 WSL 时遇到了同样的问题,如果您使用的是 Linux,您可能可以找到 PostgreSQL 库位置并将其添加到您的环境变量中。
我在 Ubuntu 上遇到了同样的错误,对我来说,以下安装解决了这个问题:
sudo apt install libpq-dev
无需移动文件,只需将 C:\Program Files\PostgreSQL\lib
和 C:\Program Files\PostgreSQL\bin
添加到您的 PATH 即可。安装和 运行 柴油机应该没有问题。
注意:您的路径可能不同,请记住close/reopen您的终端以便更新 PATH 变量。
(在 Windows 10 上测试)
为 windows 提供明确的步骤:
在环境变量的路径中添加C:\Users<用户名>.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib
复制 C:\Program Files\PostgreSQL\lib 中的 libpq.lib(显然这是版本 14)并将其粘贴到 C:\Users
.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib