>백엔드 개발 >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 플래그는 기록된 소스 파일 경로에서 지정된 접두사를 제거합니다. elf 바이너리.

결과 확인:

go tool 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.