天天看點

extern

對外提供動态庫接口時,.h檔案中的函數聲明多以 C 方式展現;而動态庫的實作可能是 C 和 C++ 的混合程式設計,這樣就需要 extern "C";

通常.c/.cpp檔案起始會包含自己的.h,這樣在預處理時展開,函數被聲明且告訴編譯器使用 C 形式編譯,這樣動态庫裡的的函數符号就是函數名稱。

是以,當出現使用者出現 “找不到函數入口” 等問題的适合,需要檢查自己的動态庫代碼,.h檔案加 extern "C" 重新編譯後再提供。

eg:System.EntryPointNotFoundException: Unable to find an entry point named ''fun1" in shared library 'libXXXX.so'.

繼續閱讀