libstdc++.so.6: cannot open shared object file: No such file or directory

本文探讨了libstdc++.so.6缺失的常见原因,包括未在程序中指定路径、库未安装及关联文件缺失,并提供了解决方案,如在Makefile中加入rpath指定路径、安装相应库和检查关联文件。

找不到libstdc++.so.6的原因,大致有以下几种:

1. 程序中没有编入路径,使用rpath指定路径,在Makefile中加入如下路径:

OBJS=*.o
ODIR=obj
LDFLAGS=-Wl,-rpath=/lib
$(ROOT_DIR)/$(BIN_DIR)/$(BIN):$(ROOT_DIR)/$(OBJS_DIR)/$(OBJS)
    $(CC) $^ -o $@ $(LDFLAGS)

其中/lib为库的路径。

2. 由于环境变量的原因,或者是32位或者64位的兼容原因,确实没有安装这个库,这就需要安装相应的库,在/etc/profile中设置库的环境变量。

3. 这个文件存在,但是关联文件缺失,这是最常勿略的问题,使用ll命令查看库的关系

例如,查看我的库

ll /lib

lrwxrwxrwx. 1 root root       19 Jul  3 00:55 libstdc++.so -> libstdc++.so.6.0.20
lrwxrwxrwx. 1 root root       19 Jul  3 00:55 libstdc++.so.6 -> libstdc++.so.6.0.20

其实libstdc++.so.6只是一个软链接,实际是缺失了libstdc++.so.6.0.20这个库,把这个库找到复制到lib中。

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值