Go で共有オブジェクト ファイルから関数を呼び出す方法は?

Patricia Arquette
リリース: 2024-11-02 13:51:30
オリジナル
691 人が閲覧しました

How to Call Functions from Shared Object Files in Go?

Go の共有オブジェクト ファイルから関数を呼び出す

Go プログラム内の静的オブジェクト (.so) ファイルから関数を呼び出すことができます。一般的な主張に反して、syscall.LoadLibrary 関数は Go 標準ライブラリには存在しません。代わりに、POSIX プラットフォームでは、cgo を利用して関数 dlopen と friends を利用できます。

これを実現する方法を示すコード スニペットの例を次に示します。

<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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!