防锈柴油与"cc"连接失败



好的,所以在这里没有什么进展。之前我发布了一个问题,我的Mac M1与Rust Diesel有链接器问题,但一无所获。所以我创建了一个Ec2实例,并尝试在这里运行这个板条箱,得到了以下结果:

error: linking with `cc` failed: exit status: 1
...
= note: /usr/bin/ld: cannot find -lpq

我已经安装了以下内容:

sudo yum update -y
sudo yum install git -y
sudo yum groupinstall "Development Tools" -y
sudo yum install cmake -y
sudo yum install postgresql-libs -y

说真的,人们是怎么让这个箱子运转起来的?

来自Diesel入门指南:

如果您遇到类似以下错误:

注意:ld:找不到-lmysqlclient的库clang:error:linker命令失败,退出代码为1(使用-v查看调用(

这意味着您缺少数据库后端所需的客户端库——在本例中为mysqlclient。您可以通过安装库(根据操作系统的不同,使用通常的方法(或使用--no-default-features标志排除不需要的默认库来解决此问题。

默认情况下,柴油机依赖于以下客户端库:

  • libpq用于PostgreSQL后端
  • Mysql后端的libmysqlclient
  • SQlite后端的libsqlite3

如果您不确定如何安装这些依赖项,请参阅相应依赖项的文档或您的分发包管理器。

例如,如果你只安装了PostgreSQL,你可以用它来安装只有PostgreSQL:的diesel_cli

货物安装diesel_cli-没有默认功能-功能postgres

错误"CCD_ 7";是你的链接器告诉你它找不到PostgreSQL客户端库。

问题是由丢失的库引起的。对于Linux

sudo apt install libpq-dev
cargo install diesel_cli --no-default-features --features postgres

对于Windows,检查已安装的锈蚀版本

rustup --version

然后从复制libq.lib

C:Program FilesPostgreSQL14lib

C:Users"Your User".rustuptoolchains"Your version of Rust-Nightly or Stable"librustlibx86_64-pc-windows-msvclib

为我工作!!

我在Fedora 36上。问题似乎是我的电脑里有两个版本的Postgres,diesel不知道该使用哪个库。以下是解决问题的方法:

sudo dnf remove postgresql10-libs
sudo dnf install postgresql14-libs
sudo dnf install postgresql14-devel

编辑:这有点奏效,但后来又坏了。我用修复了它

sudo dnf remove postgresql14-devel
sudo dnf install libpq-devel.x86_64

相关内容

最新更新