我正在构建32位c ++库,它将在现代Ubuntu机器上的旧系统上运行。应用程序在Ubuntu上工作正常,但当我搬到旧的Centos 6.9机器时,我收到错误:
Failed to open my lib: /usr/lib/libstdc++.so.6: version 'GLIBCXX_3.4.21' not found (required by /home/aaa/bbb/libme.so)
如何解决这个问题?如何构建旧的glibc?
答案 0 :(得分:0)
告诉编译器和链接器使用旧符号的唯一方法 版本是使用链接描述文件。但是,这需要你 指定每个符号的版本,这是一个可撤消的 任务。
您可以使用Holy Build Box
Holy Build Box通过提供一个来解决glibc符号问题 严格控制的构建环境,包含旧版本的 glibc的。