【发布时间】:2013-09-10 06:58:58
【问题描述】:
我想使用头文件创建一个共享库libdependent,它使用来自libparent 的某些导出函数。
libparent 的路径在构建阶段是未知的,所以我不能使用rpath,而是在运行时调用dlopen("path/libparent.so", RLTD_NOW | RTLD_GLOBAL) 和dlopen("path/libdependent.so", RLTD_NOW | RTLD_GLOBAL)。
但如果我在链接期间将libparent.so 放入库搜索路径并使用-lparent,则libdependent 文件中根本没有对libparent 的引用。
当我尝试dlopenlibdependent 时,即使设置了RTLD_GLOBAL,我也会收到“无法定位符号”错误。
我应该怎么做才能使用来自libparent 的导出而不调用dlsym?
【问题讨论】:
-
您使用什么链接器标志,即您的链接命令是什么?
-
-Lpath_to_temp_folder_with_libparent -lparent. -
我不知道为什么,但是 Android
ndk-build使用g++而不是ld进行链接。