未定义对安装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 linuxldd /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”的引用的主要内容,如果未能解决你的问题,请参考以下文章
OpenCV“对'cv :: imread'等C ++的未定义引用