make 时遇到 /usr/bin/ld: cannot find -lstdc++

在Linux环境下编译源代码时,经常遇到'cannot find -lxxx'错误,意味着系统找不到所需的库文件。这个问题可能由三个原因引起:1) 缺少对应的lib;2) lib版本不匹配;3) symbolic link错误。解决方法包括使用包管理器(如yum或apt)安装缺失的库,确保库版本正确,以及检查和修复库的symbolic link。例如,在CentOS7上,可以运行'yum install glibc-static libstdc++-static'来安装必要的库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在linux环境编译应用程式或lib的source code时常常会出现如下的错误讯息:
/usr/bin/ld: cannot find -lxxx

这些问题都是因为找不到相应的lib文件,其中xxx即表示函式库文件名称,如:libc.so、libltdl.so、libXtst.so。
其命名规则是:lib+库名(即xxx)+.so。

造成这种情况可能有有以下三种情形:
1、 系统没有安装相对应的lib
2、 相对应的lib版本不对
3、 lib(.so档)的symbolic link 不正确,没有连结到正确的函式库文件(.so)

 

第一种,解决方案如下:

CentOS 7:

yum install glibc-static libstdc++-static

Ubuntu 16.04:

apt install libstdc++-5-dev

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值