디버깅 정보 없이 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!