go install: no install location for directory [...경로...] outside GOPATH
Go 언어를 위한 IDE로 LiteIDE가 있는데요.
LiteIDE
; https://github.com/visualfc/liteide
; http://sourceforge.net/projects/liteide/files
liteidex30.2.windows-qt5.zip
; https://sourceforge.net/projects/liteide/files/X30.2/liteidex30.2.windows-qt5.zip/download
IDE라고 해서 Go 본연의 소스 코드 구조를 무시할 수는 없습니다. 가령, d:\temp\go\sample1 폴더에 hello.go 파일을 다음과 같이 만들고,
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello World!")
}
LiteIDE에 올려 Ctrl + B(Build)키를 누르면 빌드가 잘 되고 Ctrl + Alt + R(Run)키를 누르면 실행도 잘 됩니다. 하지만, Ctrl + F8(Install)키를 누르면 다음과 같은 오류가 발생합니다.
C:/Go/bin/go.exe install [D:/temp/go/sample1]
go install: no install location for directory D:\temp\go\sample1 outside GOPATH
For more details see: go help gopath
Error: process exited with code 1.
GOPATH는 환경 변수로써 go 컴파일의 기준 디렉터리 역할을 하는데, IDE 컴파일 환경이 환경 변수에 얽매이는 것 자체가 윈도우 환경에서는 왠지 잘 어울리지 않는 구조입니다. 다행이라면 LiteIDE에 GOPATH 환경 변수를 등록하는 방법이 있는데, 이를 위해 "View" / "Manage GOPATH..."에 다음과 같이 설정할 수 있습니다.
그런데, 이렇게 해도 "Install" 메뉴는 여전히 이전과 같은 오류를 내며 동작하지 않습니다.
왜냐하면, 이는
GO 언어가 제약하는 Install 구조에 맞지 않기 때문입니다. 이를 맞추려면, 우선 제가 "GOPATH"를 "D:/temp/go/sample1"로 등록했기 때문에, 다음의 폴더를 만든 후,
D:/temp/go/sample1/src
다시 src 폴더 하위에 "hello" 폴더를 만들고 그 안에 "hello.go" 파일을 넣어두어야 합니다.
D:\temp\go\sample1\src\hello\hello.go
이렇게 하고 나서야 Ctrl + F8(Install) 메뉴를 실행하면 정상적으로 실행되고,
C:/Go/bin/go.exe install [D:/temp/go/sample1/src/hello]
Success: process exited with code 0.
D:\temp\go\sample1\bin 폴더가 자동으로 만들어지면서 그 안에 hello.exe 파일이 생성됩니다.
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]