[英]How to use .so files as main arguments in c?
我必須編寫一個ac程序,該程序在主方法中獲取一個.so文件(共享對象)作為參數,並在其上調用函數f。 它期望函數f存在於此庫中。 我的程序必須可以處理任何.so文件,因此無法直接包含它們。
所以打電話
./myprogram myLibrary.so
myprogram必須執行以下操作:
int main(int argc, char *argv[]) {
return argv[1].f();
}
如何實現這一目標,以及在編譯代碼時還要考慮什么?
您嘗試做的事情稱為庫的“動態加載”。 在類似Unix的操作系統上,您要查找的調用是dlopen() 。 它需要一個文件名和一些標志,並打開指定的共享庫。 然后,您可以使用dlsym()
例程查找單個符號(例如函數f()),然后可以在程序中的其他位置調用它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.