gpt4 book ai didi

c - 在 Linux 中公开共享库的自定义位置的最佳方法

转载 作者:行者123 更新时间:2023-11-30 18:13:46 26 4
gpt4 key购买 nike

我目前正在寻找在 Linux 上公开共享库位置的方法,以便任何单独安装的程序都可以轻松获取它。我想使这个位置可配置,以便它可以指向同一库的不同可能安装。我能想到的类似情况的例子是 Qt5 和 Java。

长话短说,我正在开发FreeRDS ,一个FreeRDP基于远程桌面服务堆栈。服务器端 RDS 感知应用程序链接到 libwinpr-wtsapi,这是一个公开 Microsoft Windows 终端服务 API 接口(interface)但不实现它的 stub 库。这使得应用程序能够链接到 libwinpr-wtsapi,而无需直接链接到特定的 RDS 实现。在第一次调用任何 WTSAPI 函数时,真正的实现由 libwinpr-wtsapi 动态加载。但是,需要知道实现 WTSAPI 的动态库(此处为 FreeRDS)的位置。

现在,我通过设置具有库的完整路径的环境变量来实现此目的:

export WTSAPI_LIBRARY=/opt/freerds/lib/x86_64-linux-gnu/libfreerds-fdsapi.so

但是,这不太实用,因为需要使用 WTSAPI 为每个程序设置此环境变量。 。在本例中,我将 FreeRDS 安装在 /opt/freerds 中。 .

我想我可以通过使用单个环境变量来公开 FreeRDS 的安装前缀来简化此过程。在系统上,具有类似于 JAVA_HOME 的内容:

export FREERDS_HOME=/opt/freerds

但是,我需要知道正确的库子目录。同样重要的是要知道,将来有可能同时提供 32-bit和一个 64-bit提供 FreeRDS 的库版本WTSAPI 。这个库基本上执行RPCFreeRDS session 管理器,所以这绝对是可能的。

假设我们有 FREERDS_HOME正确设置,或者FreeRDS安装在系统的默认安装前缀中,哪些文件将是“标准”以提供一些附加的安装配置信息?在这里,我想我可以拥有相当于 Qt5 的值。的qt.conf这将是特定的安装子目录,例如 64-bit安装子目录,32-bit安装子目录等。但是,我不知道应该将该文件放在哪里。应该在 <prefix>/etc/freerds/freerds.conf

有什么想法吗?谢谢!

最佳答案

现在的一些(很多?全部?)Linux 发行版包含环境模块,其目的正是通过自定义环境(最终是 shell 别名/)来提供同一软件的许多不同版本。函数)以及简单的前端命令。

您可以找到所有需要的信息here .

关于c - 在 Linux 中公开共享库的自定义位置的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22460094/

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