gpt4 book ai didi

linux - 如何在 Linux 中存储不同编译的相同库版本?

转载 作者:太空宇宙 更新时间:2023-11-04 10:43:33 37 4
gpt4 key购买 nike

我有两个不同的 Qt 项目,一个需要用 Qt 4.8 编译,另一个需要用 Qt 5.4 编译。两者都需要使用根据其版本编译的库 QDeviceWatcher(即 Qt 5 下的应用程序应该为 Qt 5 编译 QDeviceWatcher,而使用 Qt 4.8 的应用程序需要使用 Qt 4.8 编译 QDeviceWatcher)。

问题是,在 Linux 下,.so 库文件应该位于相同的“全局”文件夹 /usr/local/lib 中。由于我同时从事这两个项目,因此我必须将两组 .so 文件都放在该文件夹中——这是不可能的,因为它们具有相同的名称,而且最后添加的文件只会覆盖前一个文件。

至于现在我所做的是每次更改要编译的项目时,我都会用我需要的编译更新库文件,但这显然是不可取的。

有什么办法可以解决这个问题吗?

我遇到的唯一两种方法是创建一个伪造的新版本库(目前是 2.0.0,所以我可以创建版本 2.0.1)并为一个不同的 Qt 版本编译每个库版本(当然那会很乱,我的意思是,这是一个假的版本!)或者将 .so 文件放在靠近项目的目录中,这样文件就会在那里而不是在全局目录 /usr/local/库。但是,在我看来,这打破了让图书馆在全局范围内为所有和新的应用程序提供服务的整个想法。 Google 没有帮助我解决这个问题。

最佳答案

考虑到 QDeviceWatcher 是第 3 方应用程序,我要做的是将它安装在 /usr/local/lib 文件夹之外并安装到项目目录中,并且更新我的 .pro 以直接指向它。

关于linux - 如何在 Linux 中存储不同编译的相同库版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34042081/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com