Go バイナリからの動的リンクのロックを解除する
動的リンクを通じてカスタム コードで Go バイナリを強化すると、バイナリ全体を再構築する必要がなくなります。このガイドでは、Go 1.5 の最新の進歩を活用して、この偉業を達成する可能性を探ります。
課題: 外部コードのコンパイルとリンク
目的は、既存の Go バイナリ内から外部 Go ファイルを取得し、それをバイナリの実行環境にリンクします。これにより、実行可能ファイル全体を再コンパイルすることなく、新しい機能をシームレスに統合できます。
答え: Go 1.5 のダイナミック リンク サポート
待望の共有機能Go 1.5 でライブラリがついに登場しました。この画期的なリリースにより、開発者は Go プログラムで使用できる Go 共有ライブラリを構築できるようになります。
ステップ 1: 共有ライブラリとして標準ライブラリを構築する
共有ライブラリを作成するには、 go install 中に -buildmode=shared フラグを利用します。たとえば、標準ライブラリを共有ライブラリとして構築するには、次のように入力します。
$ go install -buildmode=shared std
ステップ 2: 共有ライブラリにリンクされたプログラムの構築
「こんにちは、標準ライブラリの共有ライブラリにリンクする「world」プログラムlibrary:
$ go build -linkshared hello.go
ステップ 3: 共有ライブラリ バイナリの検査
ビルドが完了したら、バイナリに対して ls -l を実行して、変更点:
$ ls -l hello -rwxr-xr-x 1 adg adg 13926 May 26 02:13 hello
結論
Go 1.5 でのダイナミック リンクの導入により、外部の Go コードを既存のバイナリにシームレスに統合するという夢が現実になります。これにより、モジュール式ソフトウェア開発とコードの再利用に幅広い可能性が開かれます。
以上がGo 1.5 のダイナミック リンクは、外部コードを使用して既存のバイナリを強化できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。