메인 패키지에 여러 파일이있는 프로젝트를 어떻게 "실행"할 수 있습니까?
현재 메인 패키지에 단일 파일이 main.go있습니다. main.go코드를 포함 할 수 없기 때문에 별도의 패키지를 만들지 않고 내용 을 여러 파일로 나누는 방법은 무엇입니까?
다음과 같은 디렉토리 구조를 원합니다.
$ ls foo
main.go
bar.go
bar.go
package main
import "fmt"
func Bar() {
fmt.Println("Bar")
}
그런 다음 main.go
package main
func main() {
Bar()
}
그러나 go run main.go나에게 준다 :
# command-line-arguments
./main.go:4:2: undefined: Bar
2019 년 7 월 26 일 업데이트
go run .
원래 답변
위의 코드는 실제로 작동합니다. 문제는 내가 달려야했다.
go run *.go
대신에
go run main.go
업데이트 년 8 월 2018로 이동 1.11 하는 부분 "실행" 상태 :
이 명령은 이제 단일 가져 오기 오기 오기 경로, 디렉토리 이름 또는 단일 패키지와 일치하는 패턴을 허용합니다. 이것은 또는 가장 중요하게
go rungo run pkggo run dirgo run .
원래 답변 2015 년 1 월
에서 언급 한 바와 같이 " 어떻게 여러 개의 파일로 구성된 이동 프로그램 을 컴파일하려면 ? ", 그 이후의 파일 목록 기대 "하고 실행 컴파일을 명명 된 이동 소스 파일을 포함하는 패키지를". 따라서 패키지를 여러 파일로 분할 할 수 있습니다 .go runmainmaingo run
그것은 패키지 이름을 기대하는 것과 동일하게 작성되어 있습니다. 간단 하면 부모 폴더의 이름을 딴 실행 파일이 생성됩니다.go build/go installgo build
표준이 에서 설명하는 것처럼 셸 은 와일드 카드 확장을 수행하지 않기go run *.go 때문에 윈도우 CMD에서 작동하지 세션 않습니다 .
Windows에서는 펼쳐지는 go run *.go파일을 참조 할 수 있습니다 (* .go가 작동하지 않기 때문에).go run main.go other.go third.go
Windows의 경우 Cygwin을 설치하고 명령 프롬프트 대신 사용하십시오. 그러면 "go run * .go"가 작동합니다.
gorilla mux를 사용하여 localhost에서 여러 파일을 실행하려는 경우 최신 버전 (1.11)에 따라 이동하십시오. 다음 두 명령 중 하나를 사용합니다.
설치 && FolderName -port 8081로 이동하십시오.
빌드 && ./FolderName -port 8081로 이동하십시오.
터미널에서 명령을 실행하기 전에 소스 폴더 (예 : go / src / FolderName)에 있는지 확인하십시오.
내 생각에,이 질문에 대한 가장 좋은 답변은 최상위 답변에 대한 주석에 숨겨져 있습니다.
출시 실행하십시오 :
go run .
패키지의 모든 기본 파일이 실행되고 다음 과 같은 오류 메시지가 -display 됩니다 .
go run: cannot run *_test.go files (main_test.go)
@BarthesSimpson에 대한 명성
'IT' 카테고리의 다른 글
| User.Identity의 사용 가능한 속성을 확장하는 방법 (0) | 2020.07.09 |
|---|---|
| 요소를 클릭하는 방법 (전체 문서)? (0) | 2020.07.09 |
| 여백 상단 푸시 외부 div (0) | 2020.07.09 |
| 분리 된 HEAD 상태에서 git commit은 어떻게 분리 되었습니까? (0) | 2020.07.09 |
| 정수는 여러 반환 값을 모의 (0) | 2020.07.09 |