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. NumPy和SciPy。靜態與動態加載
- 4. 加載庫動態
- 5. 加載,在庫中插入靜態庫
- 6. 動態加載:共享靜態庫中的未定義符號
- 7. 靜態和動態庫
- 8. 在Django中動態加載和靜態加載模塊
- 9. Cmake在窗口上,加載靜態庫
- 10. 加載類從靜態庫中的d
- 11. 從elisp加載動態庫
- 12. Jquery加載動態庫
- 13. 無法加載動態庫
- 14. 動態加載本機庫
- 15. 動態加載rangy庫
- 16. JavaScript動態加載jQuery庫
- 17. 靜態庫與動態庫性能
- 18. 靜態boost.test庫和動態boost.test庫
- 19. g ++靜態庫依賴於動態庫
- 20. 靜態庫和動態庫:混亂
- 21. 靜態/動態庫vs .so庫?
- 22. 什麼是靜態庫,靜態鏈接動態庫和動態鏈接動態庫的.lib文件?
- 23. 加載靜態SVG文件反應並添加動態式樣
- 24. 動態庫動態附加
- 25. 鏈接靜態庫與靜態庫
- 26. C++:靜態庫引用靜態庫
- 27. iOS靜態庫引用靜態庫
- 28. UNIX:靜態庫鏈接到靜態庫
- 29. 加載靜態HTML到Webview
- 30. 靜態js不加載 - Django
該解決方法意味着如果我想動態加載它,我將不得不從靜態庫創建共享庫。 這意味着動態加載靜態庫是不可能的,只有共享庫可用於動態加載? 如果是這樣,那麼我從來源所述的報價是不正確的。 – 2010-09-02 14:04:28
引用的文字不正確,或者我誤解了它們的含義。 – JesperE 2010-09-03 10:06:52