Programing

여러 파일로 구성된 Go 프로그램을 컴파일하는 방법은 무엇입니까?

crosscheck 2020. 10. 26. 07:43
반응형

여러 파일로 구성된 Go 프로그램을 컴파일하는 방법은 무엇입니까?


그래서 세 개의 파일로 구성된 작은 프로그램이 있는데, 모두 같은 패키지 (main)에 속하지만 "go build main.go"를 수행하면 빌드가 성공하지 못합니다. 하나의 파일 (main.go) 일 때는 모든 것이 잘 작동했습니다. 이제 코드를 분리하기 위해 약간의 노력을 기울 였으므로 컴파일러가 main.go에서 가져온 항목을 찾을 수없고이 두 개의 다른 파일 (main.go와 동일한 디렉토리에 있음)에 넣을 수없는 것 같습니다. . "정의되지 않은 '유형'"오류가 발생합니다.

GOPATH 변수 설정에 대해 읽었으므로 시도했습니다.

set GOPATH=%cd%
go build main.go

하지만 그것도 작동하지 않았습니다.

도움을 주시면 감사하겠습니다.


myprog라는 프로그램을 작성한다고 가정합니다.

다음과 같은 디렉토리에 모든 파일을 넣으십시오.

myproject/go/src/myprog/xxx.go

그런 다음 myproject/goGOPATH에 추가

그리고 실행

go install myprog

이렇게하면 원하는 경우 myproject / go / src에 다른 패키지와 프로그램을 추가 할 수 있습니다.

참조 : http://golang.org/doc/code.html

(이 문서는 신입생들이 항상 놓치고 있으며 처음에는 잘 이해하지 못하는 경우가 많습니다. Go 팀 IMO의 가장 큰 관심을 받아야합니다)


main.go예를 들어 에서 코드를 분리 할 때 more.go해당 파일을 go build/ go run/ go install전달하기 만하면 됩니다.

따라서 이전에 실행 한 경우

go build main.go

당신은 이제 단순히

go build main.go more.go

추가 정보 :

go build --help

상태 :

If the arguments are a list of .go files, build treats them as a list
of source files specifying a single package.

처음 두 상태는 패키지 이름 을 인수 로 예상 하는 반면 후자는 go files 를 기대한다는 go buildgo install다릅니다 . 그러나 처음 두 개는 go install과 마찬가지로 go 파일도 허용합니다.go run

궁금한 점이 있다면 빌드는 build패키지 / 파일 install생성하고 GOPATH에 개체 및 바이너리 파일을 생성 run하며 프로그램을 컴파일하고 실행합니다.


당신은 또한 실행할 수 있습니다

go build

프로젝트 폴더 myproject / go / src / myprog

그런 다음 입력 할 수 있습니다.

./myprog

앱을 실행하려면


프로젝트 구조에 따라 다릅니다. 그러나 가장 간단합니다.

go build ./... -o ./myproject

그런 다음 ./myproject.

프로젝트 구조가 다음과 같다고 가정합니다.

- hello
|- main.go

그런 다음 프로젝트 디렉토리로 이동하여

go build -o ./myproject

그런 다음 ./myproject쉘에서 실행하십시오 .

또는

# most easiest; builds and run simultaneously
go run main.go

주 파일이 다음과 같은 하위 디렉토리에 중첩되어 있다고 가정합니다. cmd

- hello
|- cmd
 |- main.go

그럼 너는 달릴거야

go run cmd/main.go

당신이 사용할 수있는

go build *.go 
go run *.go

둘 다 작동합니다.

go build .
go run .

예! 그것은 매우 간단하며 패키지 전략이 작동하는 곳입니다. 내 지식에는 세 가지 방법이 있습니다. 폴더 구조 :

GOPATH/src/ github.com/ abc/ myproject/ adapter/ main.go pkg1 pkg2 warning: adapter can contain package main only and sun directories

  1. navigate to "adapter" folder. Run:
    go build main.go
  1. navigate to "adapter" folder. Run:
    go build main.go
  1. navigate to GOPATH/src recognize relative path to package main, here "myproject/adapter". Run:
    go build myproject/adapter

exe file will be created at the directory you are currently at.

참고URL : https://stackoverflow.com/questions/10838469/how-to-compile-go-program-consisting-of-multiple-files

반응형