找不到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中。

 

 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐