ld.so.1:protoc:fatal:libstdc ++。so.6:version' GLIBCXX_3.4.20'在Solaris 11中找不到

时间:2018-01-31 14:08:01

标签: c++ linux protobuf-c

我在solaris 11中安装了protobuffer,现在生成addressbook.pb.h和addressbook.pb.cc文件,我给出了以下命令

protoc -I=$SRC_DIR --cpp_out=$DST_DIR $SRC_DIR/addressbook.proto

但是没有获得所需的文件我得到了以下错误:

ld.so.1: protoc: fatal: libstdc++.so.6: version 'GLIBCXX_3.4.20' not found (required by file /export/home/shivamv/Downloads/PROTO_BUFF/protobuf-master/src/.libs/libprotobuf.so.15)
 ld.so.1: protoc: fatal: libstdc++.so.6: open failed: No such file or directory

我通过以下命令检查了libstdc ++。so.6:

strings /usr/lib/libstdc++.so.6 | grep GLIBCXX

所以我得到了这个输出:

GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGT

请帮我解决此问题:)

2 个答案:

答案 0 :(得分:2)

它可能不是最佳解决方案,但您可以告诉运行时链接程序忽略共享库版本。

export LD_NOVERSION=1

但它对我有用。

答案 1 :(得分:1)

实际上,它很直接。

  

致命:libstdc ++。so.6:版本' GLIBCXX_3.4.20'找不到

所有消息告诉您,您需要 GLIBCXX ,特别是版本3.4.20(它可能支持以后的版本),但它不是&#39 ; t安装。

libstdc++只是标准的C ++库,包含实际的GLIBCXX库。它只知道你需要那个库 - 或者特别是libprotobuf所做的 - 并且它没有找到它。

现在,我在Linux上工作,并且个人不知道如何在Solaris上安装任何东西。它出现 GLIBCXX是GLIBC的一部分,which apparently needs to be built from source。但是,就像我说的那样,我并不是专门了解Solaris,所以我可能错了。