我正在尝试在https://github.com/golang-ui/nuklear/blob/master/cmd/nk-example-sdl2/main.go上运行演示文件,但出现以下错误:
# command-line-arguments
./nk_nuclear_gui.go:72: undefined: MustAsset
./nk_nuclear_gui.go:126: undefined: flag
./nk_nuclear_gui.go:129: undefined: flag
我相信MustAsset是我安装的Reckon package的一部分,但错误仍然存在。问题在哪里,我该如何解决?
编辑:两个命令go build main.go
和go run main.go
均出现此错误。甚至go build
都没有任何文件名,也会出现此错误,如注释中所述。
我在安装nuklear软件包时遇到了this problem。
我正在Debian Stable Linux上运行以下版本:
go version go1.7.4 linux/amd64
我从https://golang.org/doc/install安装了最新版本(go version go1.10.3 linux/amd64
),但错误仍然存在。
编辑:go
目录的目录结构如下:
$ tree -d
.
├── pkg
│ └── linux_amd64
│ └── github.com
│ ├── golang-ui
│ │ └── nuklear
│ └── xlab
└── src
└── github.com
├── go-gl
│ ├── gl
│ │ ├── all-core
│ │ │ └── gl
│ │ ├── v2.1
│ │ │ └── gl
│ │ ├── v3.1
│ │ │ └── gles2
│ │ ├── v3.2-compatibility
│ │ │ └── gl
│ │ ├── v3.2-core
│ │ │ └── gl
│ │ ├── v3.3-compatibility
│ │ │ └── gl
│ │ ├── v3.3-core
│ │ │ └── gl
│ │ ├── v4.1-compatibility
│ │ │ └── gl
│ │ ├── v4.1-core
│ │ │ └── gl
│ │ ├── v4.2-compatibility
│ │ │ └── gl
│ │ ├── v4.2-core
│ │ │ └── gl
│ │ ├── v4.3-compatibility
│ │ │ └── gl
│ │ ├── v4.3-core
│ │ │ └── gl
│ │ ├── v4.4-compatibility
│ │ │ └── gl
│ │ ├── v4.4-core
│ │ │ └── gl
│ │ ├── v4.5-compatibility
│ │ │ └── gl
│ │ ├── v4.5-core
│ │ │ └── gl
│ │ ├── v4.6-compatibility
│ │ │ └── gl
│ │ └── v4.6-core
│ │ └── gl
│ └── glfw
│ ├── scripts
│ ├── v3.0
│ │ └── glfw
│ ├── v3.1
│ │ └── glfw
│ │ └── glfw
│ │ ├── deps
│ │ │ ├── EGL
│ │ │ ├── GL
│ │ │ ├── glad
│ │ │ └── KHR
│ │ ├── include
│ │ │ └── GLFW
│ │ └── src
│ └── v3.2
│ └── glfw
│ └── glfw
│ ├── deps
│ │ ├── glad
│ │ ├── KHR
│ │ ├── mingw
│ │ └── vulkan
│ ├── include
│ │ └── GLFW
│ └── src
├── golang-ui
│ └── nuklear
│ ├── assets
│ ├── cmd
│ │ ├── nk-android
│ │ │ ├── android
│ │ │ │ └── jni
│ │ │ └── assets
│ │ ├── nk-example
│ │ │ └── assets
│ │ └── nk-example-sdl2
│ │ └── assets
│ └── nk
└── xlab
└── closer
└── cmd
├── example
├── example-error
├── example-fatalln
└── example-panic
答案 0 :(得分:1)
在Go中,程序(和程序包)基于目录。因此,多个源文件经常相互补充。在这种情况下,MustAsset
是在bindata.go
中定义的。因此,隔离main.go
会引发错误。您可以在此处了解有关Go的源文件组织的更多信息:https://golang.org/doc/code.html