首頁 > 後端開發 > Golang > 主體

如何在 Go 中從共享物件檔案呼叫函數?

Patricia Arquette
發布: 2024-11-02 13:51:30
原創
691 人瀏覽過

How to Call Functions from Shared Object Files in Go?

從 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!