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