代码之家  ›  专栏  ›  技术社区  ›  fabmilo

如何以编程方式查找动态库文件的位置?

  •  2
  • fabmilo  · 技术社区  · 14 年前

    我想在特定库的系统(如果有的话)中找到路径

    dllNameFrodo = "/usr/local/frodo/lib/libfrodo.dylib";
    

    当然,它很难看,不便于携带。

    有什么想法吗?

    3 回复  |  直到 14 年前
        1
  •  1
  •   Mark B    14 年前

    与其尝试加载硬编码路径,不如将库与应用程序本地打包,以便您知道它安装在哪里,或者更好的做法是让运行时加载程序自动查找并加载它。这样,用户就可以修改LD_LIBRARY_PATH和LD_PRELOAD来选择要加载的版本。

        2
  •  1
  •   Klaim    14 年前

    1. 使用 boost::filesystem
    2. 构建一些搜索功能,并使用特定于平台的功能在每个平台上实现一次。提示:这就是boost::filesystem是什么-上面有糖-但是如果您不想或不能使用boost,那么它是唯一的“可移植”的替代品。
        3
  •  0
  •   Steve Townsend    14 年前

    在Windows上可以使用 FindFirstFile 还有家人。

    这是一个非常特殊的需求——便携的实现可能很难找到,而且在任何情况下,如果它在所有方面都是最优的,那么它下面将使用特定于平台的API。