GoLand에서 ldflags 지정 방법
간단하게 "Run/Debug Configuration" 창에서 "Go tool arguments" 항목에 ldflags를 다음과 같이 기록하면 됩니다.
그런 다음 디버깅을 실행하면 "Debug" 창에 다음과 같은 식의 출력을 볼 수 있습니다.
GOROOT=E:\Go #gosetup
GOPATH=C:\Users\testusr\go #gosetup
C:\Go\bin\go.exe build -ldflags=-linkshared -o %LOCALAPPDATA%\JetBrains\GoLand2023.3\tmp\GoLand\___2testapp -gcflags "all=-N -l" testapp #gosetup
윈도우에서 GoLand를 설치해 ldflags를 지정하는 경우 일부 옵션은 이런 오류가 발생할 수 있습니다.
loadinternal: cannot find runtime/cgo
C:\Go\pkg\tool\windows_amd64\link.exe: running gcc failed: exec: "gcc": executable file not found in %PATH%
제 경우에는 ldflags에 대해 "-linkshared"를 지정했을 때 발생했는데요, 이유는 오류 메시지에 보이는 것처럼 gcc 실행 모듈을 찾을 수 없기 때문입니다. 따라서 설치를 하든가, (하지만 설치해도 또 다른 오류가 발생합니다. ^^;)
How to install gcc in Windows 10? (the easier way)
; https://dev.to/gamegods3/how-to-install-gcc-in-windows-10-the-easier-way-422j
gcc를 설치한 WSL 등을 경유해 직접 빌드하시면 됩니다.
// $ sudo apt install golang-go // (2023-12-19 기준) Ubuntu 20.04의 경우 go 1.13, Ubuntu 20.04의 경우 go 1.18 버전 설치
$ sudo add-apt-repository ppa:longsleep/golang-backports -y
$ sudo apt update
$ sudo apt install golang -y // go 1.21.4 버전 설치 (2023-12-19 기준)
$ go build -ldflags=-linkshared -o /mnt/c/temp/testapp -gcflags "all=-N -l" testapp
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]