gpt4 book ai didi

c - 从自身内部获取共享对象的运行时路径

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:20:24 24 4
gpt4 key购买 nike

给定以下库:

libfoo.{so,dll,dylib}:

const char* get_lib_path() {
return ...;
}

构建为共享库(例如使用 GCC):

gcc -shared -fPIC foo.cpp -o libfoo.so

有没有办法让 get_lib_path() 在运行时返回库在文件系统上的路径,无论是在 Windows、macOS 还是 Linux 上?

库的最终名称未知:我无法假定从加载的库列表中搜索字符串“libfoo.so”。

这一定不需要动态加载对象的 native 句柄:我想知道我的库内部的路径,而且我无法控制加载它的应用程序(所以我无法获得 例如 dlopen 句柄)。

最佳答案

在 Windows 上,您可以使用 GetModuleFilename 或更简单的 GetMappedFileName .后者获取库内的任何地址。

关于c - 从自身内部获取共享对象的运行时路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43963763/

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