簡體   English   中英

在 Linux 或 OSX 中動態加載庫?

[英]Loading a library dynamically in Linux or OSX?

我知道在 Windows 中你會做一些類似 LoadLibrary 的事情,然后用 GetProcAddress 設置你的函數指針,

但是如何在 Linux 或 OSX 中完成類似的操作呢? 原因是我想為我的 X 平台應用程序開發一個插件系統。

謝謝

您正在尋找dlopen (類似於 LoadLibrary)、 dlclose (類似於 FreeLibrary)和dlsym (類似於 GetProcAddress)。

您可以在 Linux 和 Mac OS X 上使用dlopen和朋友( 此 Mac 手冊頁應該對兩者都適用)。 但是請注意,您需要注意不要混合使用 32 位和 64 位代碼和庫; 在 Mac 上,只需確保庫是“通用二進制文件”。

在 Linux 中,您使用 dlopen()(開放庫)、dlsym()(查找符號(通常為函數或值))和朋友: http : //linux.die.net/man/3/dlopen

我聽說它在 OS X 上的工作方式相同,但我沒有這方面的經驗。

POSIX 等價物是dlopendlsym 我知道 Linux 有它們,如果 OS X 沒有,我會感到驚訝。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM