草庐IT

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

JasonSafe 2023-08-09 原文

编译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                                                                                

完毕!

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

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

有关/usr/bin/ld: 找不到 -lstdc++的更多相关文章

  1. ruby-on-rails - rbenv:从 RVM 移动到 rbenv 后,在 Jenkins 执行 shell 中找不到命令 - 2

    我从Ubuntu服务器上的RVM转移到rbenv。当我使用RVM时,使用bundle没有问题。转移到rbenv后,我在Jenkins的执行shell中收到“找不到命令”错误。我内爆并删除了RVM,并从~/.bashrc'中删除了所有与RVM相关的行。使用后我仍然收到此错误:rvmimploderm~/.rvm-rfrm~/.rvmrcgeminstallbundlerecho'exportPATH="$HOME/.rbenv/bin:$PATH"'>>~/.bashrcecho'eval"$(rbenvinit-)"'>>~/.bashrc.~/.bashrcrbenvversions

  2. ruby-on-rails - 找不到 gem railties (>= 0.a) (Gem::GemNotFoundException) - 2

    我已经看到了一些其他的问题,尝试了他们的建议,但没有一个对我有用。我已经使用Rails大约一年了,刚刚开始一个新的Rails项目,突然遇到了问题。我卸载并尝试重新安装所有Ruby和Rails。Ruby很好,但Rails不行。当我输入railss时,我得到了can'tfindgemrailties。我当前的Ruby版本是ruby2.2.2p95(2015-04-13修订版50295)[x86_64-darwin15],尽管我一直在尝试通过rbenv设置ruby​​2.3.0。如果我尝试rails-v查看我正在运行的版本,我会得到同样的错误。我使用的是MacOSXElCapitan版本10

  3. 即使安装了 gem,Ruby 也找不到所需的库 - 2

    我花了几天时间尝试安装ruby​​1.9.2并让它与gems一起工作:-/我最终放弃了我的MacOSX10.6机器,下面是我的Ubuntu机器上的当前状态。任何建议将不胜感激!#rubytest.rb:29:in`require':nosuchfiletoload--mongo(LoadError)from:29:in`require'fromtest.rb:1:in`'#cattest.rbrequire'mongo'db=Mongo::Connection.new.db("mydb")#gemwhichmongo/usr/local/rvm/gems/ruby-1.9.2-p0/g

  4. ruby - Sinatra 找不到 View 目录 - 2

    我正在尝试以一种更类似于普通RubyGem结构的方式构建我的Sinatra应用程序。我有以下文件树:.├──app.rb├──config.ru├──Gemfile├──Gemfile.lock├──helpers│  ├──dbconfig.rb│  ├──functions.rb│  └──init.rb├──hidden│  └──Rakefile├──lib│  ├──admin.rb│  ├──api.rb│  ├──indexer.rb│  ├──init.rb│  └──magnet.rb├──models│  ├──init.rb│  ├──invite.rb│  ├─

  5. ruby - 在 SUSE 上找不到 Ruby 的头文件? - 2

    我正在尝试在SUSEEnterprise11SP3上安装compass。我得到以下信息。有什么想法吗?geminstallcompassBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingcompass:ERROR:Failedtobuildgemnativeextension./usr/bin/rubyextconf.rbmkmf.rbcan'tfindheaderfilesforrubyat/usr/lib64/ruby/ruby.hextconffailed,exitcode1Gemfileswi

  6. ruby-on-rails - Heroku 找不到 SecureRandom - 2

    我的heroku应用崩溃了,因为它找不到模块“SecureRandom”。我在gemfile中指定了我的Ruby版本,我的计算机、gemfile和Heroku似乎都匹配Ruby版本号,尽管不是补丁号。其他帖子建议将usr/bin/heroku指向特定的Ruby文件,但我不确定该怎么做(我的应用程序中没有Herokubin)。这看起来像是Ruby版本错误。我该如何解决这个问题?classOrderItemHeroku日志:/app/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.3/lib/active_support/dependenci

  7. ruby - rackup:找不到命令 - 2

    我目前正在做一个需要在ubuntu11.04上使用rackup命令的项目,但我收到一个错误:-bash:rackup:commandnotfound。我已经安装了rails和rackruby​​gems。任何帮助都会很棒! 最佳答案 如果你正在使用bundler那么也许你需要使用bundleexecbundleexecrackup 关于ruby-rackup:找不到命令,我们在StackOverflow上找到一个类似的问题: https://stackover

  8. ruby-on-rails - 尝试打开 .gitignore 以在文本编辑器中对其进行编辑,但在 OS X Mountain Lion 上找不到文件位置 - 2

    我使用“newapp_name”创建了一个新的Rails应用程序,我正在尝试编辑.gitignore文件,但在我的应用程序文件夹中找不到它。我在哪里可以找到它?我安装了Git。 最佳答案 .gitignore位于项目的root中,而不是app子目录中。首先打开终端并进入您的目录。您需要使用ls-a来显示stash文件。然后使用打开.gitignore 关于ruby-on-rails-尝试打开.gitignore以在文本编辑器中对其进行编辑,但在OSXMountainLion上找不到文件位

  9. ruby - 如何修复 RVM gem "[ missing bin/ruby ]" - 2

    执行rvmlist后,我得到以下输出:rvmrubiesgems[missingbin/ruby]=*ruby-2.0.0-p645[x86_64]ruby-2.1.6[x86_64]ruby-2.2.1[x86_64]gems[missingbin/ruby]是什么意思?gems是某种系统gemset吗?它不是我创建的,我不知道我是否可以或应该删除它。 最佳答案 在我跑完之后:rvmfix-permissions然后我能够卸载具有[缺少bin/ruby]的版本。 关于ruby-如何修复

  10. ruby-on-rails - 在任何来源中都找不到 coffee-script-source-1.1.3 - 2

    您好,我正在做Rails应用程序,当我捆绑安装时它返回一个错误:无法在任何来源中找到coffee-script-source-1.1.3我知道coffee-script-source-1.1.3gem已被弃用/取消,但我的其他gem与此有依赖关系。但是这个项目正在与其他机器和heroku产品一起工作。如何在不更改我的gemfile的情况下成功捆绑安装?谢谢 最佳答案 运行这个:bundleupdate--sourcecoffee-script-source如果出现错误,如下所示:Anerroroccurredwhileinstall

随机推荐