未定义对安装diesel_cli 的“pthread_sigmask@GLIBC_2.32”的引用

Posted

技术标签:

【中文标题】未定义对安装diesel_cli 的“pthread_sigmask@GLIBC_2.32”的引用【英文标题】:undefined reference to `pthread_sigmask@GLIBC_2.32' installing diesel_cli 【发布时间】:2020-12-18 07:10:04 【问题描述】:

我正在尝试使用 cargo install diesel_cli 安装diesel_cli 板条箱,但我不断收到此错误:

  = note: /usr/bin/ld: /usr/lib/libpq.so: undefined reference to `pthread_sigmask@GLIBC_2.32'
      collect2: error: ld returned 1 exit status


  error: aborting due to previous error

  error: failed to compile `diesel_cli v1.4.1`, intermediate artifacts can be found at `/tmp/cargo-installM4z849`

  Caused by:
    could not compile `diesel_cli`.

我发现的每个解决方案都表明我需要将 -pthread 标志传递给编译器,但是所有解决方案都与手动运行命令的 c/c++ 相关,或者使用可以轻松运行标志的 make 文件添加。通过 cargo install 运行命令时有没有办法传递这个标志?

我在跑步:

货运版 1.45.0 rustc 版本 1.45.0 Arch linux

ldd /usr/lib/libpq.so的输出:

/usr/lib/libpq.so: /usr/lib/libc.so.6: version `GLIBC_2.32' not found (required by /usr/lib/libpq.so)
linux-vdso.so.1 (0x00007ffd863fa000)
libssl.so.1.1 => /usr/lib/libssl.so.1.1 (0x00007f4723fe7000)
libcrypto.so.1.1 => /usr/lib/libcrypto.so.1.1 (0x00007f4723d0a000)
libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x00007f4723cb5000)
libldap_r-2.4.so.2 => /usr/lib/libldap_r-2.4.so.2 (0x00007f4723c5f000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f4723c3d000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007f4723a76000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f4723a6e000)
libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00007f4723988000)
libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x00007f4723957000)
libcom_err.so.2 => /usr/lib/libcom_err.so.2 (0x00007f4723951000)
libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x00007f4723942000)
libkeyutils.so.1 => /usr/lib/libkeyutils.so.1 (0x00007f472393b000)
libresolv.so.2 => /usr/lib/libresolv.so.2 (0x00007f472391f000)
liblber-2.4.so.2 => /usr/lib/liblber-2.4.so.2 (0x00007f472390f000)
libsasl2.so.3 => /usr/lib/libsasl2.so.3 (0x00007f47238f1000)
/usr/lib64/ld-linux-x86-64.so.2 (0x00007f47240f1000)

【问题讨论】:

能否将ldd /usr/lib/libpq.so 的输出包含为代码块? 【参考方案1】:

ldd /usr/lib/libpq.so 的输出看,我好像缺少 libc,安装 gcc 后我能够安装diesel_cli

【讨论】:

您的系统似乎不太可能没有 libc。更有可能的是,您触发了安装所需版本 2.32(2020 年 8 月 5 日发布)的升级。

以上是关于未定义对安装diesel_cli 的“pthread_sigmask@GLIBC_2.32”的引用的主要内容,如果未能解决你的问题,请参考以下文章

运行 Diesel CLI 工具时出现“未找到序数”

OpenCv3.3安装错误——未定义引用

对“dlsym”的未定义引用

OpenCV“对'cv :: imread'等C ++的未定义引用

错误:未定义对 cv::cudacodec::createVideoReader 的引用

安装 pHash 库时对“fftw_init_threads”的未定义引用