⑴ 如何將C++應用程序代碼添加到動態鏈接庫中
什麼意思?動態庫本來就可以寫成應用程序的。
想編寫動態庫就建一個動態庫項目。把函數一寫,再一導出。就OK了。
⑵ linux下C/C++動態庫在運行時是怎樣載入進來的
linux調用庫的方式有三種:1.靜態鏈接庫2.動態鏈接庫3.動態載入庫其中1,2都是在編程時直接調用,在鏈接時加參數-l進行鏈接第三種需要在編程時使用dlopen等函數來獲取庫裡面函數的定義,然後進行調用.不過對於沒有提供頭文件的動態庫,只能dlopen等函數來調用
⑶ 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