> 백엔드 개발 > Golang > `strip` 도구를 사용하지 않고 Go Binaries\' TEXT 지시문에서 파일 경로를 제거하려면 어떻게 해야 합니까?

`strip` 도구를 사용하지 않고 Go Binaries\' TEXT 지시문에서 파일 경로를 제거하려면 어떻게 해야 합니까?

DDD
풀어 주다: 2024-11-30 03:06:10
원래의
103명이 탐색했습니다.

How Can I Remove File Paths from Go Binaries' TEXT Directives Without Using the `strip` Tool?

컴파일된 Go 바이너리의 TEXT 지시어에서 파일 경로 제거

컴파일된 Go 바이너리 내의 TEXT 지시어에서 파일 경로 정보를 제거해야 할 필요성이 발생합니다. 이 질문은 'strip' 도구를 사용하지 않는 솔루션을 모색합니다.

해결책: -trimpath 플래그 사용

권장되는 접근 방식은 'strip' 도구를 활용하는 것입니다. -trimpath' 플래그는 'go build'를 호출할 때 발생합니다. '-trimpath'를 '-gcflags' 및 '-asmflags'에 전달하면 결과 elf 바이너리에서 외부 경로 정보를 제거할 수 있습니다.

다음은 '-'를 통합한 'go build' 명령의 수정된 예입니다. 트림패스' 플래그:

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
로그인 후 복사

확인:

이 솔루션의 효율성을 확인하려면 수정된 바이너리에서 'go tool objdump'를 실행하세요.

$ 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 커뮤니티의 일부에서는 여전히 안정성에 대해 우려를 표명한다는 점에 유의해야 합니다. 다양한 포럼과 토론에 기록된 바와 같이 알 수 없고 예측할 수 없는 버그가 발견되었습니다.

위 내용은 `strip` 도구를 사용하지 않고 Go Binaries\' TEXT 지시문에서 파일 경로를 제거하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿