Go で Linux 共有ライブラリ関数を呼び出す方法

Linda Hamilton
リリース: 2024-10-27 20:21:30
オリジナル
609 人が閲覧しました

How to Call Linux Shared Library Functions in Go?

Go での Linux 共有ライブラリ関数の呼び出し

この質問では、開発者は共有オブジェクト (.so) から関数を呼び出す際の支援を求めています。 Go コード内にファイルを追加します。 C 関数へのアクセスを可能にする Python の ctypes パッケージは、目的の機能として機能します。

静的共有ライブラリの読み込みに 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 中国語 Web サイトの他の関連記事を参照してください。

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