여러 파일로 구성된 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/go
GOPATH에 추가
그리고 실행
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 build
과 go 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
- navigate to "adapter" folder. Run:
go build main.go
- navigate to "adapter" folder. Run:
go build main.go
- 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
'Programing' 카테고리의 다른 글
Python 정수 범위 (0) | 2020.10.27 |
---|---|
data.frame에서 누락 된 값을보고하는 우아한 방법 (0) | 2020.10.26 |
히스토리없이 새 브랜치를 푸시하는 방법 (0) | 2020.10.26 |
Facebook의 sharer.php를 어떻게 사용자 정의합니까? (0) | 2020.10.26 |
IntelliJ Idea Ctrl + Alt + Left 바로 가기가 Ubuntu에서 작동하지 않음 (0) | 2020.10.26 |