是否可以从代码中获取依赖库的位置
Is it possible to get location of dependent libraries from within code
我想用dlopen函数从程序中加载一些依赖库。有可能知道这些图书馆的实际位置吗?
例如,ldd显示了系统中所有具有路径的依赖库。它是如何工作的?是否可以通过C++代码中的一些调用来获取我需要用dlopen加载的对应库的路径?
从man dlopen
可以读取:
(仅限ELF)如果调用程序的可执行文件包含DT_RPATH标记,而不包含DT_RUNPATH标记,则会搜索DT_RPATH标签中列出的目录。
如果在程序启动时,环境变量
LD_LIBRARY_PATH
被定义为包含以冒号分隔的目录列表,则会搜索这些目录。(作为一种安全措施,设置用户ID和设置组ID程序会忽略此变量。)(仅限ELF)如果调用程序的可执行文件包含DT_RUNPATH标记,则会搜索该标记中列出的目录。
检查缓存文件
/etc/ld.so.cache
(由ldconfig(8)维护)以查看它是否包含文件名条目。将搜索目录
/lib
和/usr/lib
(按顺序)。
因此,如果所需的库是";安装";,一个简单的CCD_ 6就可以了。
相关文章:
- 如何从C++中的依赖类型中获得它所依赖的类型
- 将值指定给向量(2D)的向量中的某个位置
- 使用Unreal C++获取VR耳机的世界位置/方向
- 写入位置0x0000000C时发生访问冲突
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- GL_SHADERSTORAGE_BUFFER位置是否与其他着色器位置冲突
- 将--whole archive链接器选项与CMake和具有其他库依赖项的库一起使用
- 将依赖名称显式标记为类型名和模板的奇怪之处
- 如何使用cudaMallocManaged在指针位置初始化对象?(C++)
- 无法获取webot::PositionSensor对象中位置传感器的值
- 在 Windows 上,是否可以让 dll 在不使用 PATH 环境变量的情况下在另一个文件夹中查找依赖项?
- 非常量变量只读位置的赋值
- C++GTKMM gui循环依赖关系
- 如何定义更改car类中car位置的方法
- 在位置上运行具有依赖项的.exe文件
- 如何在另一个类函数中使用类,而不依赖于它在C++中的声明位置
- 是否可以从代码中获取依赖库的位置
- 在编译时指定g++依赖项的位置
- 强制 cmake 选择依赖位置(如果存在多个)
- 如何使一个QGraphicsItem的位置依赖于另一个QGraphicsItem?