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