问题描述
我在rhel6上有我的c ++项目,并且工作正常。 但是在rhel7机器上,它会引发以下错误:
现在,我知道,在rhel7机器上,我们有:
$ ldconfig -p | grep "liblzma"
liblzma.so.5 (libc6,x86-64) => /lib64/liblzma.so.5
liblzma.so.5 (libc6) => /lib/liblzma.so.5
liblzma.so (libc6,x86-64) => /lib64/liblzma.so
在rhel6机器上,我们有:
$ ldconfig -p | grep liblzma
liblzma.so.0 (libc6,x86-64) => /usr/lib64/liblzma.so.0
liblzma.so (libc6,x86-64) => /usr/lib64/liblzma.so
如何纠正此错误? 由于rhel6构建可执行文件应该/可以在rhel7上工作。 (rhel6的任何更高版本)
解决方法
所需的库的较早版本(/usr/lib64/liblzma.so.0
由软件包xz-compat-libs
提供。很简单:
yum install xz-compat-libs
,
只需在RHEL7计算机上创建链接即可完成工作。
$ ln -s /lib64/liblzma.so liblzma.so.0
然后,您可以将创建链接的目录添加到环境变量“ LD_LIBRARY_PATH”中。这个env变量用于查找代码要使用的动态库。