>  기사  >  백엔드 개발  >  디버깅 정보 없이 Go 코드를 컴파일하는 방법은 무엇입니까?

디버깅 정보 없이 Go 코드를 컴파일하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-09 10:07:02854검색

How to Compile Go Code Without Debugging Information?

디버깅 정보 없이 Go 코드 컴파일

Go에서는 컴파일 중에 기본적으로 디버그 정보가 포함되므로 코드 디버깅이 더 쉬워집니다. . 그러나 이 정보는 코드를 디컴파일하기 위해 추출될 수도 있습니다. 이를 방지하려면 컴파일하는 동안 디버깅 정보를 제외해야 합니다.

-ldflags 사용

-ldflags 플래그를 사용하여 옵션을 링커에 전달할 수 있습니다. 기호 테이블과 디버깅 정보를 제거하려면 -ldflags 옵션에 -s -w를 추가하세요. 예는 다음과 같습니다.

go build -ldflags="-s -w" main.go

Go 1.13에 대한 추가 팁

Go 1.13 이상에서는 -trimpath 플래그를 사용하여 파일 경로 길이를 줄일 수 있습니다. 실행 파일에 저장됩니다. 이렇게 하면 생성된 바이너리의 크기를 더욱 최소화할 수 있습니다.

gccgo에 대한 참고 사항

GCC 기반 Go 컴파일러인 gccgo를 사용하면 문제가 해결되지 않는다는 점에 유의하는 것이 중요합니다. 문제. gccgo를 사용하여 -g 플래그 없이 컴파일하면 디버그 정보 누락과 관련된 오류가 발생합니다.

권장

디버깅 정보를 완전히 제거하려면 -ldflags="-s -w" 옵션을 사용하는 것이 좋습니다. 이렇게 하면 기호와 디버그 정보가 효과적으로 제거되어 컴파일된 바이너리를 디컴파일하기가 더 어려워집니다.

위 내용은 디버깅 정보 없이 Go 코드를 컴파일하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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