如何摆脱“GLIBCXX_3.4.9找不到错误”?

我正在build立一个redistrbutable .so文件。

但是,当我的用户尝试使用它,他们得到可怕的/usr/lib/libstdc++.so.6: version GLIBCXX_3.4.9' not found错误。

做一个objdump,它似乎是在我的二进制引起的问题这个特殊的符号: _ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l@@GLIBCXX_3.4.9

我如何告诉我的gcc / g ++编译/链接对旧版本的GLIBXX,以便我的用户不会得到这个错误?

我可以使用ivy.xml文件中的属性来避免重复依赖项的版本号吗?

py2exe – 如何减lessDLL依赖关系?

这是消除警告的正确方法C4945(从另一个assembly已经导入的符号)?

在Kali(Debian)中安装mono-devel时,软件包有未满足的依赖关系

在Linux上如何确定共享库依赖path?

还是解决这个难题的唯一方法就是安装一个单独的具有GLIBXX的旧版本的Linux?

以编程方式获取用于在非开发人员Windows环境中构build进程或库的DLL列表

在64位linux上安装python 32位

开发最新的Linux上游(内核,Gnome等)软件包有什么好的Linux发行版(和方法)?

当更改.c文件的注释时,scons仍会重新编译它?

如何在gerrit中合并补丁和合并补丁之间创build依赖关系?

我如何告诉我的gcc / g ++编译/链接对旧版本的GLIBXX,以便我的用户不会得到这个错误?

没有办法做到这一点。 你唯一的选择是:

用旧的g++版本构建,或者

将libstdc++.a静态地链接到共享库中,并隐藏它的符号(这也可能有许可的含义,请咨询你的律师)。

将你的libstdc++.so.6版本与你的库一起libstdc++.so.6 ,然后询问那些拥有较旧版本的用户来安排选择你的新版本(也有许可的含义,但我相信这些更容易满足)。

您正在编译GLIBCXX_3.4.9,因此您的用户至少还需要具有GLIBCXX_3.4.9。

相关文章

引言 本文从Linux小白的视角, 在CentOS 7.x服务器上搭建一个...
引言: 多线程编程/异步编程非常复杂,有很多概念和工具需要...
一. 宏观概念 ASP.NET Core Middleware是在应用程序处理管道...
背景 在.Net和C#中运行异步代码相当简单,因为我们有时候需要...
HTTP基本认证 在HTTP中,HTTP基本认证(Basic Authenticatio...
1.Linq 执行多列排序 OrderBy的意义是按照指定顺序排序,连续...