從 Go 中的共享物件檔案呼叫函數
可以從 Go 程式中的靜態物件(.so)檔案呼叫函數。與流行的說法相反,Go 標準庫中不存在 syscall.LoadLibrary 函數。相反,在 POSIX 平台上,您可以利用 cgo 來利用 dlopen 等函數。
這裡有一個範例程式碼片段,說明如何實現此目的:
<code class="go"> // #cgo LDFLAGS: -ldl // #include <dlfcn.h> import "C" import fmt func foo() { handle := C.dlopen(C.CString("libfoo.so"), C.RTLD_LAZY) bar := C.dlsym(handle, C.CString("bar")) fmt.Printf("bar is at %p\n", bar) } </code>
透過使用cgo 和適當的系統調用,您可以載入共用物件庫並從Go 程式中調用其導出的函數。
以上是如何在 Go 中從共享物件檔案呼叫函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!