【问题标题】:/lib/x86_64-linux-gnu/libm.so.6: undefined reference to `__strtof128_nan@GLIBC_PRIVATE'/lib/x86_64-linux-gnu/libm.so.6: 未定义引用`__strtof128_nan@GLIBC_PRIVATE'
【发布时间】:2021-09-29 12:05:30
【问题描述】:

我用catkin_make编译了一个ros项目,但是失败了。 说明链接库的时候出现了一些问题。

[ 98%] Linking CXX executable /home/kyxz2021/fleet/devel/lib/data_parser/data_parser_node
/lib/x86_64-linux-gnu/libm.so.6: undefined reference to `__strtof128_nan@GLIBC_PRIVATE'
collect2: error: ld returned 1 exit status

我查了一下错误,有人说可能是libm版本和libc版本不一致,但不是这里的问题。

***@ubuntu:~$ ll /lib/x86_64-linux-gnu/libm.so.6
lrwxrwxrwx 1 root root 12 May 16 20:52 /lib/x86_64-linux-gnu/libm.so.6 -> libm-2.23.so
***@ubuntu:~$ ll /lib/x86_64-linux-gnu/libc*
-rwxr-xr-x 1 root root 1868984 Jun  5  2020 /lib/x86_64-linux-gnu/libc-2.23.so*
lrwxrwxrwx 1 root root      14 Feb 11  2016 /lib/x86_64-linux-gnu/libcap.so.2 -> libcap.so.2.24
-rw-r--r-- 1 root root   23128 Oct 23  2015 /lib/x86_64-linux-gnu/libcap.so.2.24
lrwxrwxrwx 1 root root      21 Feb 11  2016 /lib/x86_64-linux-gnu/libcgmanager.so.0 -> libcgmanager.so.0.0.0
-rw-r--r-- 1 root root  141248 Jan 18  2016 /lib/x86_64-linux-gnu/libcgmanager.so.0.0.0
-rw-r--r-- 1 root root  190856 Jun  5  2020 /lib/x86_64-linux-gnu/libcidn-2.23.so
lrwxrwxrwx 1 root root      15 Jun  5  2020 /lib/x86_64-linux-gnu/libcidn.so.1 -> libcidn-2.23.so
lrwxrwxrwx 1 root root      17 Jan 22  2020 /lib/x86_64-linux-gnu/libcom_err.so.2 -> libcom_err.so.2.1
-rw-r--r-- 1 root root   14648 Jan 22  2020 /lib/x86_64-linux-gnu/libcom_err.so.2.1
-rw-r--r-- 1 root root   39224 Jun  5  2020 /lib/x86_64-linux-gnu/libcrypt-2.23.so
-rw-r--r-- 1 root root 2366112 Feb 17 10:21 /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
lrwxrwxrwx 1 root root      22 Feb 11  2016 /lib/x86_64-linux-gnu/libcryptsetup.so.4 -> libcryptsetup.so.4.6.0
-rw-r--r-- 1 root root  158920 Sep  6  2017 /lib/x86_64-linux-gnu/libcryptsetup.so.4.6.0
lrwxrwxrwx 1 root root      16 Jun  5  2020 /lib/x86_64-linux-gnu/libcrypt.so.1 -> libcrypt-2.23.so
lrwxrwxrwx 1 root root      12 Jun  5  2020 /lib/x86_64-linux-gnu/libc.so.6 -> libc-2.23.so*

以及 nm -AD /lib/x86_64-linux-gnu/lib{c,m}-2.23.so | 的输出grep __strtof128_nan 如下所示。

***@ubuntu:~$ nm -AD /lib/x86_64-linux-gnu/lib{c,m}-2.23.so | grep __strtof128_nan
/lib/x86_64-linux-gnu/libm-2.23.so:                 U __strtof128_nan

我不知道如何解决这个问题,如果有人可以帮助我,我将不胜感激。

【问题讨论】:

  • 请不要显示文本的图像。而是直接将文本剪切/粘贴到您的问题中。
  • __strtof128_nan@GLIBC_PRIVATE 的定义应该在libc-2.23.so 中。请编辑您的问题并添加来自nm -AD /lib/x86_64-linux-gnu/lib{c,m}-2.23.so | grep __strtof128_nan 的输出?

标签: makefile undefined ros glibc


【解决方案1】:

这个特殊的错误似乎是因为没有支持 float128(又名 quadmath)。 Check that your gcc version and libraries are new enough and have the right links。由于它不是编译而是链接错误,因此您可能需要链接到-lquadmath。而且,由于您的错误消息似乎将编译目标显示为自定义代码,您是否需要使用 quadmath?

【讨论】:

    猜你喜欢
    • 2019-07-04
    • 2020-04-21
    • 2012-11-27
    • 2015-07-12
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 2022-10-08
    • 2021-04-05
    相关资源
    最近更新 更多