>백엔드 개발 >Golang >My Go 프로젝트에 'Package XXX is not in GOROOT'이 표시되는 이유는 무엇입니까?

My Go 프로젝트에 'Package XXX is not in GOROOT'이 표시되는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-21 04:06:13402검색

Why Does My Go Project Show

Go 프로젝트를 빌드할 때 "패키지 XXX가 GOROOT에 없습니다"

"패키지 프로젝트/게임이 GOROOT에 없습니다" 오류 디버깅 Go 모듈과 프로젝트 레이아웃의 개념을 이해해야 합니다.

Go 모듈 및 프로젝트 구조:

Go의 최신 버전(1.13 이후)에서는 Go 모듈을 사용하여 패키지 종속성을 관리합니다. Go 모듈은 일반적으로 go.mod 파일과 소스 코드가 포함된 디렉터리입니다. go.mod 파일은 모듈 이름, 종속성 및 파일 시스템 내 위치를 선언합니다.

문제 해결:

  1. 프로젝트 루트에 go.mod 파일이 있어야 합니다.
    프로젝트 루트 디렉터리에 go.mod가 포함되어 있는지 확인하세요. 파일. 이 파일은 저장소 내부에 있어야 하며 프로젝트의 모듈 이름을 선언해야 합니다.
  2. GOROOT 및 GOPATH는 필수가 아닙니다.
    최신 버전의 Go에서는 GOROOT 및 GOPATH와 같은 환경 변수가 더 이상 필요하지 않습니다. 패키지 종속성은 go.mod를 통해 관리됩니다.
  3. 빌드 명령 검사:
    Goland가 프로젝트 빌드에 사용하는 명령을 확인하세요. 다음과 유사해야 합니다.

    go build -o C:UsersusernameAppDataLocalTemp___go_build_project_server.exe project/server

    이 명령은 GOROOT 플래그를 지정하면 안 됩니다.

  4. 잘못된 패키지 위치 가정:
    오류 메시지는 프로젝트에서 프로젝트/게임 패키지가 GOROOT에 있을 것으로 예상함을 나타냅니다. 단, 이 패키지는 프로젝트의 소스 트리에 있어야 합니다.
  5. 패키지 경로 확인:
    소스 코드의 패키지 경로(예: "project/game")를 확인하세요. 빌드 명령에 사용된 경로와 일치합니다.

중첩을 사용한 워크플로 패키지:

프로젝트에 "프로젝트/게임/엔티티"와 같은 중첩 패키지가 있는 경우 다음 추가 단계를 따라야 합니다.

  1. go 만들기. 하위 디렉터리용 mod 파일:
    자체 패키지가 포함된 각 하위 디렉터리 내에 go.mod 파일을 만듭니다. 이 파일은 하위 모듈의 이름과 상위 모듈에 대한 종속성을 선언해야 합니다.
  2. 하위 디렉터리에서 패키지 가져오기:
    하위 디렉터리의 소스 코드에서 상위 모듈에서 패키지를 가져옵니다. 구문 사용:

    import "상위/하위 모듈"

이 단계를 수행하면 "패키지 프로젝트/게임이 GOROOT에 없습니다" 오류를 해결하고 중첩된 패키지로 Go 프로젝트를 올바르게 빌드할 수 있습니다.

위 내용은 My Go 프로젝트에 'Package XXX is not in GOROOT'이 표시되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.