Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux libudunits2需要libexpat.so.0,但不接受libexpat.so.1 操作系统:Ubuntu 12.04 64位(精确) 机器:x86_64,英特尔迅驰2(2核),4 GB RAM 涉及的库:libudunits2.so.0.1.0、libexpat.so.0、libexpat.so.1_Linux_Shared Libraries_Ubuntu 12.04 - Fatal编程技术网

Linux libudunits2需要libexpat.so.0,但不接受libexpat.so.1 操作系统:Ubuntu 12.04 64位(精确) 机器:x86_64,英特尔迅驰2(2核),4 GB RAM 涉及的库:libudunits2.so.0.1.0、libexpat.so.0、libexpat.so.1

Linux libudunits2需要libexpat.so.0,但不接受libexpat.so.1 操作系统:Ubuntu 12.04 64位(精确) 机器:x86_64,英特尔迅驰2(2核),4 GB RAM 涉及的库:libudunits2.so.0.1.0、libexpat.so.0、libexpat.so.1,linux,shared-libraries,ubuntu-12.04,Linux,Shared Libraries,Ubuntu 12.04,问题描述 我在Redhat5机器上构建了libudunits2.so.0.1.0以及一个程序 它使用它。我正在尝试在Ubuntu 12.04上重建或运行它 RedHat机器安装了libexpat.so.0,这就是libudunits的功能 它是用塑料制成的 当我尝试在我的Ubuntu机器上使用udunits2构建时, 生成失败,原因是找不到libexpat.so.0。 Ubuntu机器安装了libexpat.so.1 试图构建(或运行预构建的二进制文件)会导致无法找到libexpat.so.0的

问题描述

我在Redhat5机器上构建了libudunits2.so.0.1.0以及一个程序 它使用它。我正在尝试在Ubuntu 12.04上重建或运行它

RedHat机器安装了libexpat.so.0,这就是libudunits的功能 它是用塑料制成的

当我尝试在我的Ubuntu机器上使用udunits2构建时, 生成失败,原因是找不到libexpat.so.0。 Ubuntu机器安装了libexpat.so.1

试图构建(或运行预构建的二进制文件)会导致无法找到libexpat.so.0的投诉。链接可执行文件时,我们发现需要libexpat.so.0的是libudunits2

我已经确认所有的图书馆都有正确的奏鸣曲。ldd和objdump-x没有透露libudunits不应该接受libexpat.so.1而不是 0,因为共享库通常是向后兼容的。(有关更多详细信息,请参见文章末尾的命令输出)

也许libexpat在这两个版本之间没有向后兼容性

也许我错过了别的什么

注意:我在Ubuntu12.04上使用的libudunits是从Redhat5复制过来的

命令输出

REDHAT 5...
===========
bash$ ldd libudunits2.so | grep expat
        libexpat.so.0 => /lib/libexpat.so.0 (0xf7efc000)

bash$ objdump -x libudunits2.so | grep expat
  NEEDED      libexpat.so.0


UBUNTU 12.04...
===============
bash$ ldd libudunits2.so | grep expat
        libexpat.so.0 => not found

bash$ objdump -x libudunits2.so | grep expat
  NEEDED                libexpat.so.0

我的一位同事刚刚告诉我,大调SOnumber的更改反映了两个版本之间的不兼容,而小调SOnumber则不兼容

所以,如果是libexpat.So.0.0和libexpat.So.0.1,就不会有问题,但一旦从libexpat.So.0到libexpat.So.1,就意味着存在不兼容