Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 1개 있습니다.)

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..."에 다음과 같이 설정할 수 있습니다.

lite_ide_1.png

그런데, 이렇게 해도 "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 파일이 생성됩니다.




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 11/7/2016]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 61  62  63  64  65  66  67  68  [69]  70  71  72  73  74  75  ...
NoWriterDateCnt.TitleFile(s)
12211정성태4/27/202019277개발 환경 구성: 486. WSL에서 Makefile로 공개된 리눅스 환경의 C/C++ 소스 코드 빌드
12210정성태4/20/202020725.NET Framework: 903. .NET Framework의 Strong-named 어셈블리 바인딩 (1) - app.config을 이용한 바인딩 리디렉션 [1]파일 다운로드1
12209정성태4/13/202017426오류 유형: 614. 리눅스 환경에서 C/C++ 프로그램이 Segmentation fault 에러가 발생한 경우 (2)
12208정성태4/12/202015996Linux: 29. 리눅스 환경에서 C/C++ 프로그램이 Segmentation fault 에러가 발생한 경우
12207정성태4/2/202015850스크립트: 19. Windows PowerShell의 NonInteractive 모드
12206정성태4/2/202018449오류 유형: 613. 파일 잠금이 바로 안 풀린다면? - The process cannot access the file '...' because it is being used by another process.
12205정성태4/2/202015115스크립트: 18. Powershell에서는 cmd.exe의 명령어를 지원하진 않습니다.
12204정성태4/1/202015131스크립트: 17. Powershell 명령어에 ';' (semi-colon) 문자가 포함된 경우
12203정성태3/18/202017965오류 유형: 612. warning: 'C:\ProgramData/Git/config' has a dubious owner: '...'.
12202정성태3/18/202021214개발 환경 구성: 486. .NET Framework 프로젝트를 위한 GitLab CI/CD Runner 구성
12201정성태3/18/202018455오류 유형: 611. git-credential-manager.exe: Using credentials for username "Personal Access Token". [1]
12200정성태3/18/202018543VS.NET IDE: 145. NuGet + Github 라이브러리 디버깅 관련 옵션 3가지 - "Enable Just My Code" / "Enable Source Link support" / "Suppress JIT optimization on module load (Managed only)"
12199정성태3/17/202016183오류 유형: 610. C# - CodeDomProvider 사용 시 Unhandled Exception: System.IO.DirectoryNotFoundException: Could not find a part of the path '...\f2_6uod0.tmp'.
12198정성태3/17/202019539오류 유형: 609. SQL 서버 접속 시 "Cannot open user default database. Login failed."
12197정성태3/17/202018843VS.NET IDE: 144. .NET Core 콘솔 응용 프로그램을 배포(publish) 시 docker image 자동 생성 - 두 번째 이야기 [1]
12196정성태3/17/202015964오류 유형: 608. The ServicedComponent being invoked is not correctly configured (Use regsvcs to re-register).
12195정성태3/16/202018278.NET Framework: 902. C# - 프로세스의 모든 핸들을 열람 - 세 번째 이야기
12194정성태3/16/202021004오류 유형: 607. PostgreSQL - Npgsql.NpgsqlException: sorry, too many clients already
12193정성태3/16/202017951개발 환경 구성: 485. docker - SAP Adaptive Server Enterprise 컨테이너 실행 [1]
12192정성태3/14/202019982개발 환경 구성: 484. docker - Sybase Anywhere 16 컨테이너 실행
12191정성태3/14/202021064개발 환경 구성: 483. docker - OracleXE 컨테이너 실행 [1]
12190정성태3/14/202015649오류 유형: 606. Docker Desktop 업그레이드 시 "The process cannot access the file 'C:\Program Files\Docker\Docker\resources\dockerd.exe' because it is being used by another process."
12189정성태3/13/202021251개발 환경 구성: 482. Facebook OAuth 처리 시 상태 정보 전달 방법과 "유효한 OAuth 리디렉션 URI" 설정 규칙
12188정성태3/13/202026037Windows: 169. 부팅 시점에 실행되는 chkdsk 결과를 확인하는 방법
12187정성태3/12/202015621오류 유형: 605. NtpClient was unable to set a manual peer to use as a time source because of duplicate error on '...'.
12186정성태3/12/202017410오류 유형: 604. The SysVol Permissions for one or more GPOs on this domain controller and not in sync with the permissions for the GPOs on the Baseline domain controller.
... 61  62  63  64  65  66  67  68  [69]  70  71  72  73  74  75  ...