在Go 中呼叫Linux 共享函式庫函數
在此問題中,開發人員尋求從共享物件(.so) 呼叫函數的幫助他們的Go 程式碼中的檔案。 Python 中的 ctypes 套件可以存取 C 函數,可以作為所需的功能。
使用 cgo 進行靜態共享庫載入
靜態呼叫函數在編譯時已知共享函式庫,可以使用 cgo 套件。以下是從libfoo.so 存取bar() 函數的範例:
<code class="go">package example // #cgo LDFLAGS: -lfoo // #include <foo.h> import "C" func main() { C.bar() }</code>
使用cgo 載入動態共用程式庫
或者,cgo 可以輕鬆存取共用程式庫在運行時動態載入的物件。需要利用函數 dlopen()、dlsym() 和 dlclose() 來開啟共用函式庫、擷取函式位址和關閉函式庫。然而,Go 本身並不支援這些函數,需要 C 包裝器來實現必要的邏輯。
以上是如何在Go中呼叫Linux共享函式庫函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!