當前位置:編程學習大全網 - 編程軟體 - unix 下的C++編程在編譯時怎麽鏈接動態庫?第二個問題 在程序中怎麽調用?

unix 下的C++編程在編譯時怎麽鏈接動態庫?第二個問題 在程序中怎麽調用?

妳說的是手動顯示調用,不是靜態隱式調用。

#include<dlfcn.h>

此頭文件在編譯時需要加入 -ldl選項

動態鏈接庫 必須加入:-fpic選項。

------

void *dll=NULL;//保存動態鏈接庫的句柄。

int (*dll_fun)(char*)=NULL;//想要調用的函數指針。

dll=dlopen("/lib/XXX.so", RTLD_NOW)//打開so文件。

dll_fun=dlsym(dll,"my_print");//獲取指定函數的指針。

dll_fun("Call my_print");

dlclose(dll)

---

編譯鏈接有兩種方法,

1. 使用-lXX 選項,gcc會自動在庫路徑中鏈接libXX.so的文件 gcc main.c -lstdc++ -omain

2. 在命令行中將庫路徑作為參數傳入。 gcc main.c /lib/libstdc++.so -omain

  • 上一篇:嵌入理論的背景。
  • 下一篇:能告訴我中國銀行個人手機銀行新增大額存單的操作步驟嗎?
  • copyright 2024編程學習大全網