반응형
문제 발생 예시)
Linux에서 go run main.go 명령을 실행하여 main.go 파일을 실행하려고 한다.
main.go 파일의 import 에는 다른 디렉토리에 생성한 모듈을 사용하려고 한다.
그러나 터미널창에서 `main.go:OOO OOO is not in GOROOT(/usr/local/go/OOO/OOO)` 라는 오류가 발생함.
해결 방법
방법 1.
기존의 go.mod 파일이 있다면 삭제한 후 다음의 명령어를 실행하여 현재 디렉토리 내에 새 모듈을 생성한다.
go mod init [모듈명]
명령어를 사용하여 현재 디렉토리에 새 모듈을 생성한다.
모듈 생성 후 main.go에서 다른 go 파일의 함수를 호출하기 위해서 import를 수정한다.
package main
import (
[alias] "모듈명/.go파일이 있는 파일명" // alias는 선택 사항
)
func main() {
...
}
원인
컴파일러가 내가 의도하지 않은 경로에서 package를 찾고 있었기 때문
사실 go.mod 파일을 직접 수정해도 괜찮지만, 프로젝트 규모가 작거나 큰 문제가 없다면 삭제 후 다시 생성하는 것이 편하다.
반응형
'Golang' 카테고리의 다른 글
Golang 문자열 다루기 (strconv, strings) (0) | 2022.12.10 |
---|---|
Golang Time (0) | 2022.09.13 |
JSON data 사용하기 (0) | 2022.04.23 |
ioutil 패키지를 사용하여 파일 읽기/쓰기 (0) | 2022.04.23 |
Local package import 오류 (0) | 2022.02.21 |
댓글