我正在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。