/usr/bin/ld: 找不到 -lstdc++

编译Linux工程,公司编译环境是CentOS5,可以正常编译。但移到CentOS7就不行了,总是提示:

/usr/bin/ld: 找 不 到 -lstdc++

collect2: 错 误 : ld 返 回 1。

怀疑是搜索库路径不对,使用命令:ld -verbose  查看链接库搜索路径。发现路径中确实没有libstdc++.so. 

[root@CentOs7 ~]# ld -verbose
GNU ld version 2.27-44.base.el7_9.1
  支持的仿真:
   elf_x86_64
   elf32_x86_64
   elf_i386
   elf_iamcu
   i386linux
   elf_l1om
   elf_k1om
使用内部链接脚本:
==================================================
/* Script for -z combreloc: combine and sort reloc sections */
/* Copyright (C) 2014-2016 Free Software Foundation, Inc.
   Copying and distribution of this script, with or without modification,
   are permitted in any medium without royalty provided the copyright
   notice and this notice are preserved.  */
OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64",
              "elf64-x86-64")
OUTPUT_ARCH(i386:x86-64)
ENTRY(_start)
SEARCH_DIR("=/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib");

使用命令:find / -name libstdc++.* | grep libstdc++, 查看有没有其他相关litstdc++.so

[root@CentOs7 bd]# find / -name libstdc++.* | grep libstdc++
/var/lib/docker/overlay2/685d194cac64d5c34f19fe7d43879f8a4ca596e509e48ba9fe00d05a2652149f/diff/usr/lib64/libstdc++.so.6
/var/lib/docker/overlay2/685d194cac64d5c34f19fe7d43879f8a4ca596e509e48ba9fe00d05a2652149f/diff/usr/lib64/libstdc++.so.6.0.8
/var/lib/docker/overlay2/aa9322b14570f0e5d78deaf7fc2e127b0ab8bfa02c215c0c2dd718effa79fbef/diff/usr/lib/gcc/x86_64-redhat-linux/4.1.1/libstdc++.a
/var/lib/docker/overlay2/aa9322b14570f0e5d78deaf7fc2e127b0ab8bfa02c215c0c2dd718effa79fbef/diff/usr/local/lib64/libstdc++.a
/var/lib/docker/overlay2/aa9322b14570f0e5d78deaf7fc2e127b0ab8bfa02c215c0c2dd718effa79fbef/diff/usr/local/lib64/libstdc++.la
/var/lib/docker/overlay2/aa9322b14570f0e5d78deaf7fc2e127b0ab8bfa02c215c0c2dd718effa79fbef/diff/usr/local/lib64/libstdc++.so
/var/lib/docker/overlay2/aa9322b14570f0e5d78deaf7fc2e127b0ab8bfa02c215c0c2dd718effa79fbef/diff/usr/local/lib64/libstdc++.so.6
/var/lib/docker/overlay2/aa9322b14570f0e5d78deaf7fc2e127b0ab8bfa02c215c0c2dd718effa79fbef/diff/usr/local/lib64/libstdc++.so.6.0.20
/var/lib/docker/overlay2/aa9322b14570f0e5d78deaf7fc2e127b0ab8bfa02c215c0c2dd718effa79fbef/diff/usr/local/lib64/libstdc++.so.6.0.20-gdb.py
/var/lib/docker/overlay2/d5e0551b37f86c42289d01bed808672414da46b26534aba5780a1097ad6f903f/diff/usr/lib/gcc/i386-redhat-linux/4.1.1/libstdc++.a
/var/lib/docker/overlay2/d5e0551b37f86c42289d01bed808672414da46b26534aba5780a1097ad6f903f/diff/usr/lib/gcc/i386-redhat-linux/4.1.1/libstdc++.so
/var/lib/docker/overlay2/d5e0551b37f86c42289d01bed808672414da46b26534aba5780a1097ad6f903f/diff/usr/lib/gcc/x86_64-redhat-linux/4.1.1/32/libstdc++.a
/var/lib/docker/overlay2/d5e0551b37f86c42289d01bed808672414da46b26534aba5780a1097ad6f903f/diff/usr/lib/gcc/x86_64-redhat-linux/4.1.1/32/libstdc++.so
/var/lib/docker/overlay2/d5e0551b37f86c42289d01bed808672414da46b26534aba5780a1097ad6f903f/diff/usr/lib/gcc/x86_64-redhat-linux/4.1.1/libstdc++.so
/var/lib/docker/overlay2/d5e0551b37f86c42289d01bed808672414da46b26534aba5780a1097ad6f903f/diff/usr/lib/libstdc++.so.6
/var/lib/docker/overlay2/d5e0551b37f86c42289d01bed808672414da46b26534aba5780a1097ad6f903f/diff/usr/lib/libstdc++.so.6.0.8
/var/lib/docker/overlay2/a0fdb9be44b142cf924da66827066aa613f3edbbbf067152d7e4d74322554318/diff/usr/lib64/libstdc++.so.6
/var/lib/docker/overlay2/a0fdb9be44b142cf924da66827066aa613f3edbbbf067152d7e4d74322554318/diff/usr/lib64/libstdc++.so.6.0.20
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/32/libstdc++.a
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/32/libstdc++.so
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/libstdc++.so
/usr/lib64/libstdc++.so.6
/usr/lib64/libstdc++.so.6.0.19
/usr/lib64/libstdc++.so
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.py
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyc
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyo
/opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/libstdc++.a
/opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/32/libstdc++.a
/opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/32/libstdc++.so
/opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/libstdc++.so

看到还是有很多libstdc++.so。于是在搜索库目录中创建软链接:ln -s <link_path> <source_path>

[root@CentOs7 bd]# ln -s /usr/lib64/libstdc++.so /usr/lib/gcc/x86_64-redhat-linux/4.8.2/libstdc++.so

创建完之后发现还是不行,提示找不到。

又看资料说,可能是库版本不对,于是删除该链接,重新创建其他版本的so链接,结果都不行。

那可能就真的没装对应版本的libstdc++.so吧。输入命令:yum install glibc-static libstdc++-static -y,重新安装:

[root@CentOs7 bd]# yum install glibc-static libstdc++-static -y
已加载插件:fastestmirror
Determining fastest mirrors
 * base: mirrors.huaweicloud.com
 * centos-sclo-rh: mirrors.bfsu.edu.cn
 * centos-sclo-sclo: mirrors.bfsu.edu.cn
 * extras: mirrors.bfsu.edu.cn
 * updates: mirrors.bfsu.edu.cn
base                                                                                                                                                                                                                  | 3.6 kB  00:00:00     
centos-sclo-rh                                                                                                                                                                                                        | 3.0 kB  00:00:00     
centos-sclo-sclo                                                                                                                                                                                                      | 3.0 kB  00:00:00     
docker-ce-stable                                                                                                                                                                                                      | 3.5 kB  00:00:00     
extras                                                                                                                                                                                                                | 2.9 kB  00:00:00     
updates                                                                                                                                                                                                               | 2.9 kB  00:00:00     
(1/3): docker-ce-stable/7/x86_64/primary_db                                                                                                                                                                           |  91 kB  00:00:00     
(2/3): centos-sclo-rh/x86_64/primary_db                                                                                                                                                                               | 3.4 MB  00:00:04     
(3/3): updates/7/x86_64/primary_db                                                                                                                                                                                    |  19 MB  00:00:09     
正在解决依赖关系
--> 正在检查事务
---> 软件包 glibc-static.x86_64.0.2.17-326.el7_9 将被 安装
---> 软件包 libstdc++-static.x86_64.0.4.8.5-44.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

============================================================================================================================================================================================================================================= Package                                                       架构                                                版本                                                           源                                                    大小
=============================================================================================================================================================================================================================================正在安装:
 glibc-static                                                  x86_64                                              2.17-326.el7_9                                                 updates                                              1.6 M
 libstdc++-static                                              x86_64                                              4.8.5-44.el7                                                   base                                                 413 k

事务概要
=============================================================================================================================================================================================================================================安装  2 软件包

总下载量:2.0 M
安装大小:11 M
Downloading packages:
(1/2): glibc-static-2.17-326.el7_9.x86_64.rpm                                                                                                                                                                         | 1.6 MB  00:00:00     
(2/2): libstdc++-static-4.8.5-44.el7.x86_64.rpm                                                                                                                                                                       | 413 kB  00:00:00     
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------总计                                                                                                                                                                                                         2.2 MB/s | 2.0 MB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : libstdc++-static-4.8.5-44.el7.x86_64                                                                                                                                                                                     1/2 
  正在安装    : glibc-static-2.17-326.el7_9.x86_64                                                                                                                                                                                       2/2 
  验证中      : glibc-static-2.17-326.el7_9.x86_64                                                                                                                                                                                       1/2 
  验证中      : libstdc++-static-4.8.5-44.el7.x86_64                                                                                                                                                                                     2/2 

已安装:
  glibc-static.x86_64 0:2.17-326.el7_9                                                                                 libstdc++-static.x86_64 0:4.8.5-44.el7                                                                                

完毕!

安装完后,再编译,一切正常。

建议:如果提示找不到,先重装,确保已经安装了,再说其他的。

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值