ホームページ >バックエンド開発 >Golang >「-trimpath」フラグを使用して Go バイナリからファイル パスを削除するにはどうすればよいですか?

「-trimpath」フラグを使用して Go バイナリからファイル パスを削除するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-03 10:29:10326ブラウズ

How Can I Remove File Paths from Go Binaries Using the `-trimpath` Flag?

TEXT ディレクティブを使用した go バイナリのファイル パスの削除

「/Users/myuser/dev/go/src/」のようなファイル パスを削除するにはfooapi/spikes/mongoapi.go" を go 実行可能ファイルから取得し、-trimpath を使用します。以下のようなフラグを設定します:

CGO_ENABLED=0 go build -v -a -ldflags="-w -s" \
    -gcflags=-trimpath=/Users/myuser/dev/go/src \
    -asmflags=-trimpath=/Users/myuser/dev/go/src \
    -o ./fooapi spikes/mongoapi.go

-trimpath のメカニズム:

-gcflags と -asmflags の両方に渡される -trimpath フラグは、記録されたソース ファイル パスから指定されたプレフィックスを削除します。エルフバイナリ内。

結果検証:

go tools objdump ./fooapi を実行して、変更された結果を表示します:

$ go tool objdump ./fooapi

.
.
TEXT main.init(SB) api/spikes/mongoapi.go
mongoapi.go:60  0x12768c0   65488b0c25a0080000  GS MOVQ GS:0x8a0, CX
mongoapi.go:60  0x12768c9   483b6110        CMPQ 0x10(CX), SP
mongoapi.go:60  0x12768cd   7663            JBE 0x1276932
.
.

ストリップに関する注意:

ストリップツールは、解決したと主張しているにもかかわらず、Go コミュニティで論争に直面しています。予期せぬバグが報告されています。詳細については、リンクされたディスカッションを参照してください。

以上が「-trimpath」フラグを使用して Go バイナリからファイル パスを削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。