无法在 Ubuntu 22.04 LTS 中运行使用 libboost 1.49 构建的应用程序

无法在 Ubuntu 22.04 LTS 中运行使用 libboost 1.49 构建的应用程序

我正在尝试安装一个在 Ubuntu 12.04 LTS 中开发的应用程序。此应用程序(我无法访问源代码)需要安装“libboost_system.1.49”。

现在我必须在 Ubuntu 22.04 LTS 中安装此应用程序,我可以想象,存在一些兼容性问题。

首先,我尝试安装并运行 Boost 库的最新版本 1.74,但应用程序无法运行它,并且仍在请求版本 1.49。

我看到一些相关链接讨论如何卸载该软件包的 X 版本以安装较新或较旧的版本,但按照这些线程中解释的步骤操作后,我仍然无法使其运行。

我尝试过这个:卸载boost并安装其他版本没有成功。还有这个:官方网站的安装说明 我从这里下载了 Boost 版本:从官方网站下载链接

我尝试通过运行来检查安装的库的版本:dpkg -s libboost-dev | grep 'Version'并且响应是“该包未安装且没有可用信息”

终端显示的异常内容如下:AppName: error while loading shared libraries: libboost_system.so.1.49.0: cannot openshared object file: No such file or directory

与 JAVA_HOME 路径一样,是否有一种方法可以在 Ubuntu 中指定应用程序需要去检索已安装版本的 Boost 库的路径?

我还尝试执行以下命令:

./bootstrap.sh

sudo ./b2 --with=all -j $cpuCores install

,来自 Boost 版本的下载文件夹内,但它将 boost 库安装在 /usr/local/include 下而不是 /usr/include 中。

总而言之,我尝试的最后一件事是运行最后一条命令并添加 --prefix 指令:

sudo ./b2 --with=all -j $cpuCores install --prefix=/usr/include

但是当我再次检查版本时,仍然说没有安装 libboost-dev。

每当我尝试安装 libboost-dev 包时,它都会安装 Boost 的最新版本,而不是 1.49,并且我尝试安装 libboost-all-dev_1.49.0.1_i386.deb 包,这是我在 launchpad.net 存储库中能找到的唯一一个包,但是在运行命令时sudo dpkg -i libboost-all-dev_1.49.0.1_i386.deb,终端会出现一个 dpkg 错误,提示“依赖性问题阻止了 libboost-all-dev:i386 的配置”,并说它依赖于“libboost-dev”......如果我安装它,我将获得最新版本的 Boost 包,但它不兼容......

我可以在 Ubuntu 22.04 LTS 中以某种方式安装和链接 Boost 库的 1.49 版本吗?我不在乎有没有这个库的最新版本,因为安装它的 PC 不会安装任何应用程序。只有依赖于这个 1.49 版本的应用程序。

任何你能提供的帮助我都会非常感激

答案1

您是否尝试过将当前 1.7.4 库与 1.4.9 库建立符号链接?

sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_system.so /usr/lib/x86_64-linux-gnu/libboost_system.so.1.49.0

相关内容