다른 파일에 golang "undefined"함수가 선언되어 있습니까?
다른 파일에서 함수를 호출하지만 동일한 패키지의 일부를 호출하는 기본 go 프로그램을 작성하려고합니다. 그러나 다음을 반환합니다.
undefined: NewEmployee
소스 코드는 다음과 같습니다.
main.go
:
package main
func main() {
emp := NewEmployee()
}
employee.go
:
package main
type Employee struct {
name string
age int
}
func NewEmployee() *Employee {
p := &Employee{}
return p
}
func PrintEmployee (p *Employee) {
return "Hello world!"
}
"Go 코드 작성 방법"을 읽으십시오 .
사용하지 마십시오 /src
당신에 GOPATH
. 패키지는에 있습니다 $GOPATH/src
.
위해 build
또는 install
당신은 패키지 디렉토리에 파일이 필요합니다.
의 경우 go run
모든 파일을 인수로 제공해야합니다.
go run main.go employee.go
그러나 거의 항상 ( go install
또는 비 주요 패키지로 작업 할 때 혼란 go build
을 go build
유발하기 때문에 전자를 사용해야 합니다)
방금 GoLand에서 동일한 문제가 발생하여 해결책을 찾았습니다. 당신은을 변경할 필요가 Run kind
에서 File
로 Package
또는 Directory
. Run/Edit
구성으로 이동하면 드롭 다운에서이를 선택할 수 있습니다 .
package ~/go/src/a_package
의 경우 Package path
is a_package
와 Directory
is ~/go/src/a_package
입니다. 원하는 것을 선택할 수 있습니다 Run kind
.
을 사용하는 경우을 go run
수행하십시오 go run *.go
. 현재 작업 디렉토리에서 모든 go 파일을 자동으로 찾아 컴파일하고 주 기능을 실행합니다.
다음 중 하나를 시도 할 수 있습니다.
방법 01 : 프로젝트 이름이MyProject
- 경로로 이동하여 입력
go build
하고 Enter 키를 누르십시오. - 프로젝트 이름 ( "MyProject")으로 실행 파일을 생성합니다.
- 그런 다음 터미널 유형에서
./MyProject
Enter 키를 누릅니다
을 입력하여 두 단계를 동시에 수행 할 수 있습니다 go build && ./MyProject
. 모든 go
파일로 프로젝트를 올바르게 실행합니다 .
방법 02
그냥 입력 go run *.go
하고 Enter 키를 누르십시오. 이것은 모든 을 실행 합니다 go files
.
이것이 누군가에게 도움이되기를 바랍니다.
다른 go 파일에서 함수를 호출하고 Goland를 사용하는 경우 실행 메뉴에서 '구성 편집'옵션을 찾아 실행 유형을 파일에서 디렉토리로 변경하십시오. 모든 오류를 지우고 다른 go 파일에서 함수를 호출 할 수 있습니다.
소스 폴더가 / go / src / blog로 구조화 된 경우 (소스 폴더의 이름이 블로그라고 가정)
- cd / go / src / blog ... (패키지가있는 폴더 안에있는 CD)
- 설치하러 가다
- 블로그
That should run all of your files at the same time, instead of you having to list the files manually or "bashing" a method on the command line.
I ran into the same issue with Go11
, just wanted to share how I did solve it for helping others just in case they run into the same issue.
I had my Go project outside $GOPATH
, so I had to turned on GO111MODULE=on
without this option turned on, it will give you this issue; even if you you try to build or test the whole package
or directory
it won't be solved without GO111MODULE=on
참고URL : https://stackoverflow.com/questions/28153203/golang-undefined-function-declared-in-another-file
'Programming' 카테고리의 다른 글
파이썬의 Windows 경로 (0) | 2020.08.05 |
---|---|
변수에 traceback / sys.exc_info () 값을 저장하는 방법은 무엇입니까? (0) | 2020.08.05 |
x86 어셈블리에서 xor, mov 또는 and에서 레지스터를 0으로 설정하는 가장 좋은 방법은 무엇입니까? (0) | 2020.08.05 |
AWS Command Line Tools의 자격 증명을 테스트하는 방법 (0) | 2020.08.05 |
Intellij Idea에서 사용되지 않는 모든 클래스를 어떻게 찾습니까? (0) | 2020.08.05 |