【发布时间】:2011-05-05 05:30:08
【问题描述】:
我想在系统中查找特定库的路径(如果有) 现在我有一个内置路径:
dllNameFrodo = "/usr/local/frodo/lib/libfrodo.dylib";
但当然是丑陋且不便携。
有什么想法吗?
【问题讨论】:
-
他们可以在任何地方。这些系统中的每一个都有一些松散的约定,但一般无法找到它们。
我想在系统中查找特定库的路径(如果有) 现在我有一个内置路径:
dllNameFrodo = "/usr/local/frodo/lib/libfrodo.dylib";
但当然是丑陋且不便携。
有什么想法吗?
【问题讨论】:
与其尝试加载硬编码路径,不如将库与您的应用程序一起在本地打包,以便您知道它的安装位置,或者更好的是,让运行时加载器自动查找并加载它。这样用户就可以通过 LD_LIBRARY_PATH 和 LD_PRELOAD 来选择要加载的版本。
【讨论】:
这就像搜索任何类型的文件 - 给定它的名称或扩展名以及从何处开始搜索的一些提示 - 因此,如果您想要以可移植的方式搜索,您有 2 个解决方案:
【讨论】:
在 Windows 上,您可以使用 FindFirstFile 和家人。
这是一个非常特殊的要求 - 可移植的实现可能很难找到,并且在任何情况下都将使用平台特定的 API,如果它在所有方面都是最佳的。
【讨论】: