8
Q
动态加载静态库?
A
回答
8
静态库或多或少只是对象文件的集合。如果您想在程序中使用静态库,则必须将可执行文件与其链接起来。然后可执行文件将包含静态库(或您使用的部分)。
如果要在运行时使用dlopen
加载静态库,则必须先创建一个包含它的动态库libfoo.so
。
4
打开.a
文件使用dlopen
确实不是工作(在Ubuntu 10.04上测试)。通过下面的例子程序:
#include <dlfcn.h>
#include <stdio.h>
int main()
{
void *lib_handle = dlopen("/usr/lib/libz.a",RTLD_LAZY);
printf("dlopen error=%s\n",dlerror());
printf("lib_handle=%p\n",lib_handle);
}
我得到:使用/usr/lib/libz.so
当
dlopen error=/usr/lib/libz.a: invalid ELF header
lib_handle=(nil)
而相反,我得到:
dlopen error=(null)
lib_handle=0x19d6030
所以相同的代码工作为共享对象。
相关问题
- 1. 加载库动态
- 2. 动态加载:共享静态库中的未定义符号
- 3. 静态和动态库
- 4. Cmake在窗口上,加载静态库
- 5. 从elisp加载动态库
- 6. 动态加载本机库
- 7. 无法加载动态库
- 8. JavaScript动态加载jQuery库
- 9. 动态加载rangy库
- 10. 静态库和动态库:混乱
- 11. g ++静态库依赖于动态库
- 12. 静态/动态库vs .so库?
- 13. 静态库与动态库性能
- 14. 什么是静态库,静态链接动态库和动态链接动态库的.lib文件?
- 15. 加载静态SVG文件反应并添加动态式样
- 16. Django静态不会加载
- 17. 静态js不加载 - Django
- 18. 静态类未加载
- 19. iOS静态库引用静态库
- 20. UNIX:静态库链接到静态库
- 21. 静态链接到动态库。 glibc
- 22. 动态LIB找不到静态库
- 23. 链接动态和静态库RCPP
- 24. 静态和动态库链接
- 25. 混合静态和动态(共享)库?
- 26. Fedora动态替换libm.a(静态库)?
- 27. 无法加载静态库包故事板(尚未加载) - iOS
- 28. 数据库驱动类动态加载
- 29. 建议在tcl中静态或动态加载.so软件包
- 30. Windows静态库
该解决方法意味着如果我想动态加载它,我将不得不从静态库创建共享库。 这意味着动态加载静态库是不可能的,只有共享库可用于动态加载? 如果是这样,那么我从来源所述的报价是不正确的。 – 2010-09-02 14:04:28
引用的文字不正确,或者我误解了它们的含义。 – JesperE 2010-09-03 10:06:52