go run main.go undefined? golang main包那点事
wind5o · · 3656 次点击 · · 开始浏览最近把我的ss项目做了一下结构调整,一顿重构后,输入go run main.go,编译报错function undefined。额,怎么回事明明把函数定义在main.go上面的文件中啊。之前也遇到过这个问题不过没用深究,下面我们来说说go main包那点事。
golang main包推荐只有一个main.go文件,这样大家就能按照习惯的方式,go run main.go 或 go build main.go来运行编译项目。
如果main包下有多个go文件,应该使用go run a.go b.go c.go 或 go run *.go来运行,编译同理。
因为mian包里,使用go run main.go,编译器只会加载main.go这个文件,不会加载main包里的其他文件,只有非main包里的文件才会通过依赖去自动加载。所以你需要输入多个文件作为参数。
golang推荐项目结构:
.
├── .gitignore
├── README.md
├── main.go
└── src
├── pkg1
│ └── a.go
├── pkg2
│ └── b.go
└── pkg3
└── c.go
如果需要编译为多个程序,可以加入cmd文件夹:
.
├── .gitignore
├── README.md
├── cmd
│ ├── cmd1
│ │ └── main.go
│ └── cmd2
│ └── main.go
└── src
├── pkg1
│ └── a.go
├── pkg2
│ └── b.go
└── pkg3
└── c.go
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
最近把我的ss项目做了一下结构调整,一顿重构后,输入go run main.go,编译报错function undefined。额,怎么回事明明把函数定义在main.go上面的文件中啊。之前也遇到过这个问题不过没用深究,下面我们来说说go main包那点事。
golang main包推荐只有一个main.go文件,这样大家就能按照习惯的方式,go run main.go 或 go build main.go来运行编译项目。
如果main包下有多个go文件,应该使用go run a.go b.go c.go 或 go run *.go来运行,编译同理。
因为mian包里,使用go run main.go,编译器只会加载main.go这个文件,不会加载main包里的其他文件,只有非main包里的文件才会通过依赖去自动加载。所以你需要输入多个文件作为参数。
golang推荐项目结构:
.
├── .gitignore
├── README.md
├── main.go
└── src
├── pkg1
│ └── a.go
├── pkg2
│ └── b.go
└── pkg3
└── c.go
如果需要编译为多个程序,可以加入cmd文件夹:
.
├── .gitignore
├── README.md
├── cmd
│ ├── cmd1
│ │ └── main.go
│ └── cmd2
│ └── main.go
└── src
├── pkg1
│ └── a.go
├── pkg2
│ └── b.go
└── pkg3
└── c.go